Alinear texto a la derecha en android TextView


Tengo un TextView en mi solicitud. Quiero alinear el texto a la derecha. He intentado añadir:

android:gravity="right"

Pero esto no funciona para mí.

¿Qué podría estar haciendo mal?

Author: Bishan, 2012-01-23

18 answers

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

 170
Author: a fair player,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-27 17:05:26

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

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

El segundo afecta a 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.

 137
Author: wiztrail,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-28 23:54:09

La mejor solución es la que sea más simple y la que haga menos modificaciones en el comportamiento del código.

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

En lugar de necesitar cambiar sus Propiedades LinearLayout que tal vez puedan alterar el comportamiento de LinearLayout childs?

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

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

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

 71
Author: Paulo Roberto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-21 18:03:18

android:layout_gravity se utiliza 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 padre o está tratando de lograr ambos

 18
Author: rogerstone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-23 09:13:16

Asegúrese de que no está utilizando android:layout_width="wrap_content" si es así, entonces no podrá establecer la gravedad porque no tiene suficiente espacio para que el texto se alinee. En su lugar use android:layout_width="fill_parent"

 8
Author: Lalit Poptani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-21 08:30:02

El siguiente fragmento de código:

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

Funciona muy bien para mí

 7
Author: Fey Agape,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-22 14:08:56
android:gravity="right"

Se utiliza básicamente en el Diseño lineal, por lo que debe establecer el ancho de TextView o EditText como

android:layout_width = "match_parent"

Y

Cuando esté trabajando en un Diseño relativo, use

android:layout_alignParentRight="true"
 6
Author: Kushal Ramola,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-28 03:12:39

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

 5
Author: Augustus Francis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-19 02:39:57

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

O

Si desea alinear a la esquina right del dispositivo, el lugar android:layout_alignParentRight="true"

 5
Author: user2342517,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-10 21:51:28

Permítanme explicar el concepto de gravedad usando WEB porque muchos desarrolladores son conscientes de ello.

android_layout_gravity se comporta float:left|right|top|bottom

Considerando 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 as 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).

 4
Author: Xar E Ahmer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-02 11:58:43

En caso de que alguien todavía necesite

android:gravity="end"
 4
Author: npk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-16 09:13:15

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 las configuraciones android:layout_alignParentEnd y android:textAlignment del segundo TextView.

 3
Author: David Cheung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-26 01:32:20

Puedes usar:

    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
 2
Author: Pablo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-01 16:04:15

Esto debería servir para el propósito

android:textAlignment="textStart"

 2
Author: masoud Cheragee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-09 08:33:19

También me enfrenté al mismo problema y pensé que el problema estaba sucediendo ya que el layout_width del TextView tenía wrap_content. Necesitas tener layout_width como match_parent y android: gravity = "gravity"

 1
Author: Arup Saha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-26 01:29:07
<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 que el número uno se alinee en el centro tanto horizontal como vertical.

 1
Author: Alp Altunel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-31 12:11:20

En mi caso, estaba usando Relative Layout para un emptyString

Después de luchar en esto durante una hora. Solo esto funcionó para mí:

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

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

Para dejarlo más claro:

Esto era lo que estaba tratando de hacer:

introduzca la descripción de la imagen aquí

Y esta fue la salida del emulador

introduzca la descripción de la imagen aquí

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

Observe que:

  1. android:layout_width="wrap_content" funciona
  2. Gravity no se utiliza
 1
Author: Rohit Sharma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-25 06:17:41

Intenta añadir android:gravity="center" a TextView

 0
Author: TheGreenGoblen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-07 13:13:52