Estoy tratando de crear un diseño con tres textviews uno al lado del otro. Las textviews son de diferente duración.Crear TextViews con el mismo ancho en una fila
Todo lo que quiero hacer es organizarlos para que siempre tengan el mismo layout_width independientemente de la longitud de su texto.
Enfoques I trataron:
1) He intentado utilizar linear_layout y establecer el peso de textviews ser 1 pero que no hacerlo, ya que sólo se aplica para el ancho restante después de todos textViews están posicionados.
2) También traté de usar el diseño de la tabla y estirar todas las columnas utilizando stretchColumns = "*". pero eso también asigna el ancho requerido a la longitud de los textos y solo entonces estira las columnas.
3) Esto es un truco pero esto tampoco está funcionando. Traté de tener un diseño lineal dentro de un diseño relativo con tres textviews para no tener texto, pero forzarlos a tener el mismo ancho estableciendo sus pesos. Esto funciona, pero luego quiero que mis próximas vistas, que están en el diseño relativo, se alineen con los bordes derecho e izquierdo de las vistas dentro del diseño lineal. Pero esto no funciona. Aquí está mi diseño que utilicé para esto.
<RelativeLayout
android:layout_width="fill_parent" android:layout_height="fill_parent" >
<!-- This is a hack to have all three textviews in a row to obtain equal width -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView android:id="@+id/tv_ref1"
android:layout_width="0dp" android:layout_height="wrap_content"
android:text="My"
android:layout_weight="1.0"
android:gravity="center" />
<TextView android:id="@+id/tv_ref2"
android:layout_width="0dp" android:layout_height="wrap_content"
android:text="My"
android:layout_weight="1.0"
android:gravity="center" />
<TextView android:id="@+id/tv_ref3"
android:layout_width="0dp" android:layout_height="wrap_content"
android:text="My ghghhfghjjghjkkhgfhfghfjhjh"
android:layout_weight="1.0"
android:gravity="center" />
</LinearLayout>
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/tv_ref1"
android:gravity="center"
android:text="Text Text Text"
android:textColor="@color/white" />
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/tv_ref1"
android:gravity="center_horizontal"
android:text="Med"
android:textColor="@color/white" />
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/tv_ref1"
android:gravity="center"
android:text="Long Text wtwy yu hjsyi"
android:textColor="@color/white" />
</RelativeLayout>
Por favor, hágamelo saber lo que podría estar haciendo mal y cómo puedo forzar mis textviews en una fila para tener la misma anchura.
Gracias.
Eso no funciona. Lo intenté. Le da más ancho al texto que es más largo que los otros textos. – achie
si layout_width es "wrap_content", sí; si es "fill_parent" - no. pruébalo –
Ahh mi mal. Si, funciona. E incluso las textviews en la distribución lineal dentro de la relación relativa en mi código de diseño también funcionan. Por lo tanto, funciona con fill_parent o 0dp para todas las textviews. También puede funcionar si establecemos que el ancho de todas las textviews sea el mismo. Gracias. – achie