¿Cómo alinear el botón a la derecha, sin ser superpuesto por TextView?
Estoy tratando de obtener algo como esto: http://img202.imageshack.us/img202/552/layoutoy.png . Estoy utilizando esto como un elemento de lista (técnicamente como la vista de grupo de un ExpandableListView).
Aquí está el archivo XML:
- Cómo cambiar el nombre de la aplicación en NativeScript
- No se puede crear servicio com.parse.PushService: java.lang.NullPointerException
- ¿Cómo hacer la transición de la aplicación de Youtube en la búsqueda?
- Cómo inflar RelativeLayout de XML
- Concatenar cadenas múltiples en XML?
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight"> <TextView android:id="@+id/list_item_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" /> <Button android:id="@+id/list_item_button" android:text="Click me!" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_toRightOf="@id/list_item_text" /> </RelativeLayout>
Pero esto no funciona. El botón no envuelve su contenido, sino que utiliza todo el espacio horizontal disponible. El TextView no envuelve su contenido, pero lo que quiero hacer es cortar cuando se superpone el botón.
En otras palabras, quiero que todos los botones sean del mismo ancho, independientemente de la cantidad de texto en las vistas de texto. ¿Es esto posible?
- Android - java.lang.UnsupportedOperationException: No se puede convertir a dimension: type = 0x12
- Obtener atributos con estilo para el niño de la definición de estilo de los padres
- Creación de hashmap / map desde recursos XML
- Uso de iconos vectoriales en Android
- Obtención de recursos de / res en dependencia
- Retrofit y SimpleXML para el elemento raíz desconocido?
- Cómo cambiar el color del texto del botón de radio en Android?
- PreferenciaNo se encuentra la clase Screen
Creo que deberías intentarlo al revés. Haga que el TextView esté a la izquierda del botón. De esta manera, la vista de texto no se superpondrá al botón. Si desea que se corte de al final de la línea que tiene que restringir a una línea. En este momento sólo movería el resto del texto a la siguiente línea.
Esto debería funcionar:
<Button android:id="@+id/list_item_button" android:text="Click me!" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true"/> <TextView android:id="@+id/list_item_text" android:text="veryveryveryveryveryveryveryveryveryverylong" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/list_item_button" android:ellipsize="end" /> </RelativeLayout>
Antes de que alguien intente el método mostrado arriba (con el RelativeLayout), debe utilizar LinearLayout para esto. Los pesos deben estar ajustados correctamente: el elemento que necesita ocupar el espacio vacío debe tener un peso de 1 y el ancho definido como fill_parent, el elemento que necesita mantener su tamaño mínimo debe tener un peso de 0 con un ancho de resumir contenido.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight"> <TextView android:id="@+id/list_item_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight=1 android:ellipsize="end" /> <Button android:id="@+id/list_item_button" android:text="Click me!" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight=0/> </LinearLayout>
- ¿Cómo construyo estas bibliotecas desde GitHub?
- Reemplazo del controlador de pantalla táctil en el núcleo de Android