Respuestas:
Creo que estás haciendo esto: android:layout_width = "wrap_content"
si este es el caso, haz esto:android:layout_width = "match_parent"
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, entonces 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 mismo (cuadro de edición o vista de texto) dentro de la vista padre.
La mejor solución es la más simple y la que modifica menos el comportamiento de su código .
¿Qué pasa si puede resolver este problema solo con 2 Propiedades en su TextView
?
¿En lugar de necesitar cambiar sus LinearLayout
propiedades que quizás puedan alterar el comportamiento de los LinearLayout
niños?
De esta manera, no necesita cambiar las LinearLayout
propiedades y el comportamiento, 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 a su padre objetivo? Piénsalo :)
TextView
propiedad? - Puede consultar la propiedad desde la referencia aquí: developer.android.com/reference/android/view/…
android:layout_gravity
se usa para alinear la vista de texto con respecto al diseño principal.
android:gravity
se usa 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 en sí a la derecha con respecto al diseño principal o está tratando de lograr ambos?
Asegúrate de no estar usando android:layout_width="wrap_content"
si es así, entonces no podrás establecer la gravedad porque no tienes suficiente espacio para que el texto se alinee. En lugar de usarandroid:layout_width="fill_parent"
android:gravity="right"
Básicamente se usa en diseño lineal, por lo que debe establecer su ancho de TextView o EditText como
android:layout_width = "match_parent"
y
Cuando trabaje en Diseño relativo, use
android:layout_alignParentRight="true"
Realice el (LinearLayout) android:layout_width="match_parent"
y el TextView'sandroid:layout_gravity="right"
Si está adentro RelativeLayout
puedes usarandroid:layout_toRightOf="@id/<id_of_desired_item>"
O
Si desea alinear a la right
esquina del dispositivo, el lugarandroid:layout_alignParentRight="true"
Permítanme explicar el concepto de gravedad usando WEB porque muchos desarrolladores lo saben.
android_layout_gravity
se comporta float:left|right|top|bottom
Mientras que android_gravity
trabajar comotext_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.
Tenga en cuenta que 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 android:layout_alignParentEnd
y android:textAlignment
de la segunda TextView.
esto debería servir el propósito
android:textAlignment="textStart"
En mi caso, estaba usando Relative Layout
para unemptyString
Después de luchar por 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 soportarlo 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:
android:layout_width="wrap_content"
trabajosGravity
no se usa<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.
intenta agregar android:gravity="center"
aTextView