textalignment studio right que example code align android alignment android-textview

studio - textview android align right



Alinear el texto a la derecha en TextView de Android (18)

Tengo un TextView en mi aplicación. Quiero alinear el texto a la derecha. Intenté agregar:

android:gravity="right"

Pero esto no funciona para mí.

¿Qué podría estar haciendo mal?


Permítanme explicar el concepto de gravedad utilizando WEB porque muchos desarrolladores lo saben.

android_layout_gravity comporta float:left|right|top|bottom

Mientras que android_gravity funciona como text_align:centre|left|right

En Android, float es android_layout_gravity y text_align: es android_gravity.

Y android_layout_gravity se aplica en relación con el padre. donde como android_gravity se aplica a su contenido secundario o interno.

Nota android_gravity solo funciona cuando su Vista es match_parent (cuando tiene espacio para centrar).


A continuación funciona para mí:

<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" />

Tenga en cuenta la configuración de android:layout_alignParentEnd y android:textAlignment del segundo TextView.


Asegúrese de que no está utilizando android:layout_width="wrap_content" lo contrario, no podrá establecer la gravedad porque no tiene suficiente espacio para que se alinee el texto. En su lugar usa android:layout_width="fill_parent"


Creo que estás haciendo esto: android:layout_width = "wrap_content"
Si este es el caso, haz esto: android:layout_width = "match_parent"


El siguiente fragmento de código:

android:textAlignment="textEnd" android:layout_gravity="end"

funciona muy bien para mi


En caso de que alguien todavía necesite.

android:gravity="end"


En general, android:gravity="right" es diferente de android:layout_gravity="right" .

El primero afecta la posición del texto en sí dentro de la Vista, por lo que si desea que esté alineado a la derecha, layout_width= debe ser "fill_parent" o "match_parent" .

El segundo afecta la posición de la vista dentro de su padre, en otras palabras, alineando el objeto en sí (cuadro de edición o vista de texto) dentro de la vista padre.


En mi caso, estaba usando Relative Layout para un emptyString

Después de luchar en esto por una hora. Solo esto me funcionó:

android:layout_toRightOf="@id/welcome" android:layout_toEndOf="@id/welcome" android:layout_alignBaseline="@id/welcome"

layout_toRightOf o layout_toEndOf ambos funcionan, pero para layout_toEndOf mejor, utilicé ambos.

Para que quede más claro:

Esto era lo que estaba tratando de hacer:

Y esta fue la salida del emulador.

Diseño:

<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" />

Darse cuenta de:

  1. android:layout_width="wrap_content" funciona
  2. Gravity no es usada

Haz el (LinearLayout) android:layout_width="match_parent" y el android:layout_gravity="right"


Puedes usar:

android:layout_alignParentRight="true" android:layout_centerVertical="true"


Si está en RelativeLayout puede usar android:layout_toRightOf="@id/<id_of_desired_item>"

O

Si desea alinearse con la esquina right del dispositivo, coloque android:layout_alignParentRight="true"


También me enfrenté con el mismo problema y pensé que el problema estaba ocurriendo a medida que el ancho_diseño de TextView estaba teniendo wrap_content. Necesitas tener layout_width como match_parent y android: gravity = "gravity"


esto debería servir al propósito

android:textAlignment="textStart"


intenta agregar android:gravity="center" en TextView


android:layout_gravity se usa para alinear la vista de texto con respecto al diseño principal. android:gravity se utiliza para alinear el texto dentro de la vista de texto.

¿Está seguro de que está tratando de alinear el texto dentro de la vista de texto a la derecha o desea mover la vista de texto a la derecha con respecto al diseño principal o está tratando de lograr ambas cosas?


La mejor solución es la que es la más simple y la que menos modifica el comportamiento de su código .

¿Qué TextView si puede resolver este problema solo con 2 propiedades en su TextView ?

¿En lugar de tener que cambiar las propiedades de LinearLayout que pueden alterar el comportamiento de los niños de LinearLayout ?

Usando esta forma, no necesita cambiar LinearLayout propiedades y el comportamiento de LinearLayout , solo necesita agregar las siguientes propiedades a su TextView destino:

android:gravity="right" android:textAlignment="gravity"

¿Qué sería mejor cambiar solo tu objetivo para resolver tu solución en lugar de tener la oportunidad de causar otro problema en el futuro, modificando a tu padre objetivo? Piénsalo :)


<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>

hace alinear el número uno en el centro tanto horizontal como vertical.


android:gravity="right"

Básicamente, se utiliza en el diseño lineal, por lo que debe configurar el ancho de TextView o EditText como

android:layout_width = "match_parent"

y

Cuando esté trabajando en Diseño relativo, use

android:layout_alignParentRight="true"