Eu tenho o seguinte layout básico
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/title_bar_background">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textAppearance="?android:attr/textAppearanceLarge"
android:padding="10dp"
android:text="HELLO WORLD" />
</LinearLayout>
<LinearLayout>
Parece que o xml está correto, mas o texto está alinhado à esquerda. A visualização do texto ocupa toda a largura do pai e a visualização do texto é configurada para ser centralizada. Não tenho certeza de qual é o problema ...
android
android-layout
android-linearlayout
layout-gravity
Jake Wilson
fonte
fonte
Respostas:
O que está acontecendo é que, como o TextView está preenchendo toda a largura do LinearLayout interno, ele já está no centro horizontal do layout . Ao usá-
android:layout_gravity
lo, coloca o widget, como um todo, na gravidade especificada. Em vez de colocar todo o centro do widget, o que você realmente está tentando fazer é colocar o conteúdo no centro, o que pode ser feitoandroid:gravity="center_horizontal"
e oandroid:layout_gravity
atributo pode ser removido.fonte
android:layout_width
terá o mesmo valor (após layout). Uma vez que a largura da TextView é igual à com a do interior da LinearLayout TextView eficazmente tem osandroid:layout_gravity
valores deleft
,right
ecenter
ao mesmo tempo.ImageView
sualayout_gravity
e deTextView
seusgravity
é o que única trabalha. O Android é ótimo! Obrigado a todos os lindos posts do SO sem os quais o desenvolvimento era simplesmente impossível.android:layout_width="match_parent"
fonte
Se você definir
<TextView>
no centro<Linearlayout>
, primeiro coloqueandroid:layout_width="fill_parent"
obrigatório.Não há necessidade de usar qualquer outra gravidade
fonte
Use
android:gravity="center"
em emTextView
vez delayout_gravity
.fonte
Basta usar: android: layout_centerHorizontal = "true"
Irá colocar todo o textview no centro
fonte