Respostas:
Eu acho que você está fazendo isso: android:layout_width = "wrap_content"
Se este for o caso, faça o seguinte:android:layout_width = "match_parent"
Em geral, android:gravity="right"
é diferente de android:layout_gravity="right"
.
O primeiro afeta a posição do texto em si na Visualização, portanto, se você deseja que ele esteja alinhado à direita, layout_width=
deve ser "fill_parent"
ou "match_parent"
.
O segundo afeta a posição da Visualização dentro de seu pai, em outras palavras - alinhando o próprio objeto (caixa de edição ou exibição de texto) dentro da exibição pai.
A melhor solução é a mais simples e a que menos modifica seu comportamento no código .
E se você puder resolver esse problema apenas com 2 Propriedades no seu TextView
?
Em vez de precisar alterar suas LinearLayout
propriedades, talvez isso possa alterar o comportamento das LinearLayout
crianças?
Dessa forma, você não precisa alterar as LinearLayout
propriedades e o comportamento; você só precisa adicionar as duas seguintes propriedades ao seu destino TextView
:
android:gravity="right"
android:textAlignment="gravity"
O que seria melhor mudar apenas seu objetivo para resolver sua solução, em vez de ter a chance de causar outro problema no futuro, modificando seu pai-alvo? pense nisso :)
TextView
propriedade? - Você pode verificar a propriedade da referência aqui: developer.android.com/reference/android/view/...
android:layout_gravity
é usado para alinhar a exibição de texto em relação ao layout pai.
android:gravity
é usado para alinhar o texto dentro da visualização de texto.
Tem certeza de que está tentando alinhar o texto dentro da visualização de texto para a direita ou deseja mover a visualização de texto para a direita em relação ao layout pai ou está tentando obter os dois
Certifique-se de que não está usando, android:layout_width="wrap_content"
caso contrário, não será possível definir a gravidade, pois não há espaço suficiente para o texto se alinhar. Em vez disso, useandroid:layout_width="fill_parent"
android:gravity="right"
É basicamente usado no Layout Linear, então você precisa definir sua largura do TextView ou do EditText como
android:layout_width = "match_parent"
e
Quando estiver trabalhando no layout relativo, use
android:layout_alignParentRight="true"
Crie o (LinearLayout) android:layout_width="match_parent"
e o TextViewandroid:layout_gravity="right"
Se estiver, RelativeLayout
você pode usarandroid:layout_toRightOf="@id/<id_of_desired_item>"
Ou
Se você deseja alinhar ao right
canto do dispositivo, o localandroid:layout_alignParentRight="true"
Deixe-me explicar o conceito de gravidade usando WEB, porque muitos desenvolvedores estão cientes disso.
android_layout_gravity
comporta-se float:left|right|top|bottom
Considerando que android_gravity
trabalhar comotext_align:centre|left|right
No Android float é android_layout_gravity e text_align: is android_gravity.
E android_layout_gravity se aplica em relação ao pai. onde android_gravity se aplica ao seu filho ou conteúdo interno.
Nota android_gravity só funciona quando sua View é match_parent (quando tem espaço para centralizar).
Abaixo funciona para mim:
<TextView
android:id="@+id/tv_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sarah" />
<TextView
android:id="@+id/tv_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tv_username"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/tv_username"
android:text="San Marco"
android:textAlignment="viewEnd" />
Observe as configurações android:layout_alignParentEnd
e android:textAlignment
do segundo TextView.
isso deve servir ao propósito
android:textAlignment="textStart"
No meu caso, eu estava usando Relative Layout
por umemptyString
Depois de lutar sobre isso por uma hora. Só isso funcionou para mim:
android:layout_toRightOf="@id/welcome"
android:layout_toEndOf="@id/welcome"
android:layout_alignBaseline="@id/welcome"
layout_toRightOf
ou layout_toEndOf
ambos funcionam, mas, para apoiá-lo melhor, usei os dois.
Para deixar mais claro:
Era isso que eu estava tentando fazer:
E essa foi a saída do emulador
Layout:
<TextView
android:id="@+id/welcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="Welcome "
android:textSize="16sp" />
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/welcome"
android:layout_toRightOf="@id/welcome"
android:text="@string/emptyString"
android:textSize="16sp" />
Notar que:
android:layout_width="wrap_content"
trabalhoGravity
não é usado<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/tct_postpone_hour"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:gravity="center_vertical|center_horizontal"
android:text="1"
android:textSize="24dp" />
</RelativeLayout>
faz o número um alinhar no centro, horizontal e vertical.
tente adicionar android:gravity="center"
emTextView