Cómo alinear las 3 vistas por igual (horizontal) en Android

Haga su orientación de diseño lineal como horizontal

En eso para establecer el ancho del diseño como “0 dp” y su peso debe ser “1” . Por lo tanto, todas las vistas dentro del diseño lineal ocuparán la misma cantidad de espacio. vista de texto (primer elemento), Editar texto (valor) y símbolo de dólar.

Acabo de editar tu código. Espero que te ayude.

Pero su diseño parece ser más antiguo. Hoy en día, nadie recomienda este tipo de etiquetas para el tipo de entrada. Puedes probar este diseño de Textinput.

TextInputLayout | Desarrolladores de Android

Gracias !!

Feliz codificación 🙂 🙂

Acabo de leer las otras respuestas (3 mientras escribo), una cosa común entre todas es que recomiendan que uses LinearLayout . Bueno, si quieres probar otra cosa, te recomiendo que pruebes RelativeLayout . He agregado el enlace a su documentación, puede intentar comenzar desde allí.

De acuerdo con la documentación:

RelativeLayout es un grupo de vistas que muestra vistas secundarias en posiciones relativas. La posición de cada vista se puede especificar como relativa a elementos hermanos (como a la izquierda o debajo de otra vista) o en posiciones relativas al área RelativeLayout principal (como alineada a la parte inferior, izquierda o centro).


Entonces, básicamente, si usa LinearLayout , tendrá que hacer un diseño raíz para todo el archivo XML, luego tendrá que hacer tres linearLayout diferentes como hijo del diseño raíz y luego colocará textView y editText dentro de este linearLayout (Leelo de nuevo !!).

Pero si, en lugar de linearLayout , decide usar relativeLayout , no tendrá que declarar tres diseños diferentes en el archivo principal, es decir, el ParentView del archivo xml será relativeLayout , ahora puede colocar todos los * editText’s * y el * textView * directamente dentro de este diseño principal como vistas hermanas.

Ahora, puede colocar su vista una en relación con la otra en la pantalla. Supongamos que tiene un editText con y desea colocarlo en la parte superior del padre, entonces tendrá que agregar:

android: layout_alignParentTop = “true”

Y ahora su diseño se colocará en la parte superior de parentView. Lo bueno del diseño relativo es que, en el caso de situaciones como la que está atrapado, siempre puede usar el atributo:

android: layout_alignStart = “” // Coloque la identificación de la vista que desea
alinee esta vista con dentro de las comillas.

Entonces, si tiene un elemento que tiene la identificación “textView01”, para alinear una nueva textView con la textView original (textView01), agregue la línea:

android: layout_alignStart = “textView01”


Sin embargo, hay un pequeño problema aquí, supongamos que si está utilizando textView para realizar una llamada de red y luego carga los datos dentro de textView, la aplicación se bloqueará si los datos dentro de textView son ‘nulos’.

En caso de que no haya entendido (que probablemente sea el caso):

Suponga que tiene una aplicación que le muestra una descripción de una película. Ahora, si la película es relativamente nueva y, por lo tanto, no tiene descripción, en ese caso, el texto que se muestra en el cuadro de descripción (textView) será nulo o nulo , y en algunas versiones anteriores de Android, si no se muestra nada TextView, entonces Android no rellenará la vista, es decir, Android nunca creará la vista porque ya sabe que la vista nunca será necesaria.

Entonces, si tiene un diseño relativo en este caso, la siguiente vista que esté debajo de esta vista ( firstView ) tendrá la propiedad;

android: layout_below = “@ + id / firstView”

Pero, Android nunca ha creado la vista llamada ‘firstView’ porque no era necesaria. Entonces, si la aplicación nunca ha creado esta vista, entonces no sabe dónde está firstView y, por lo tanto, no puede colocar ninguna otra vista debajo (porque no conoce la ubicación de firstView). Entonces, la aplicación no sabe qué hacer ahora y, por lo tanto, se bloquea.

Tenga en cuenta que este es un error que existe en versiones anteriores de Android, por debajo de 4.4 más o menos. Por lo tanto, si está seguro de que esta aplicación será utilizada por los usuarios que tengan KitKat por lo menos, continúe con relativeLayout o si está seguro de que no surgirá tal condición en la que Android no completará la vista, de lo contrario puede siempre use LinearLayout o recurra a algún otro diseño.


En caso de que esté un poco preocupado por todo el asunto de relativo diseño, bueno, no necesita preocuparse, el error se ha solucionado y relativo diseño es tan bueno como cualquier otro. Todo finalmente depende de su elección.

Solía ​​usar relativo Diseño antes porque generalmente no tienes que escribir tanto, pero obstaculiza la legibilidad, tuve que ir a la parte superior de la página para averiguar cuál era este diseño (Ctrl + F no ayudó ya que había usado este mismo diseño como parámetro de diseño para muchas vistas). Entonces, comencé a usar LinearLayout, claro, ahora tengo que escribir mucho y toma mucho más tiempo planificar la vista, pero siempre es más fácil de comprender que relativo a Layout …

PD: Esto es lo que quise decir con otros diseños: Diseños | Desarrolladores de Android

Y otro enlace que podría ayudarlo con relativo diseño: diseño relativo de Android

Me gustaría sugerir utilizar TextInputLayout | Desarrolladores de Android

Solo tienes que usarlo como:

android: layout_width = “match_parent”
android: layout_height = “wrap_content”>
android: layout_width = “match_parent”
android: layout_height = “wrap_content”
android: sugerencia = “@ string / form_username” />

Obtendrá, creo que es increíble:

Puede visitar la Biblioteca de soporte de diseño de Android

Gracias. 🙂 🙂

Haz 4 diseños lineales,

  1. El primer diseño contendrá otros 3 diseños lineales. La orientación será horizontal.
  2. El segundo diseño contendrá textView en orientación vertical.
  3. el tercero contendrá edittextview en orientación vertical.
  4. y el cuarto para el símbolo en orientación vertical.

Mostrar el resto de la vista de texto (costo total) debajo del primer diseño lineal.

También puede lograrlo utilizando la propiedad de peso.

Obtendrás lo que quieres. 😀

http://schemas.android.com/apk/res/android&quot ; android: layout_width =” match_parent “android: layout_height = “match_parent” android: background = “@ android: color / white” android: orientación = “vertical” android: padding = “16dp”>

Use el diseño relativo aquí y use alinear el inicio primario verdadero para la vista de texto y alinee el final primario para editar el texto y luego use el margen izquierdo o comenzar para editar el texto.

La otra forma es usar dos diseños lineales como diseño principal para editar texto y vista de texto y luego usar el contenido de ajuste para el ancho del diseño lineal de la vista de texto; de este modo, habrá un ancho fijo para la vista de texto hasta la vista de texto más grande y el espacio restante se llenará con otro diseño lineal que contiene editar texto como hijos.

Use weight atributo de weight para esto. Establezca el width de los tres objetos en 0 y para cada uno de ellos, haga el weight como 3, 5, 1 o combinaciones similares. Estos números representan la proporción de ancho que deben tener.

hacer que las vistas principales sean LinearLayout con orientación Horizontal

Dar ancho de vistas son 0dp y establecer el peso como 1 para cada uno. Distribuirá el mismo espacio para todas las vistas.