Pregunta

Estoy intentando conseguir fila ListView a tener el siguiente aspecto:

| Text-Text-Text                        <ImageButton> |

Con la ImageButton roto para el borde derecho. ¿Cómo puedo hacer esto? Aquí está el código de diseño actual que estoy usando. ¿Qué estoy haciendo mal?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/layercontainer"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:background="#699">
 <LinearLayout
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:layout_gravity="left">
   <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="YO HOW SI IT GOESSDA" />
 </LinearLayout>

 <LinearLayout
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:layout_gravity="right">
   <ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/trash" />
 </LinearLayout>
</LinearLayout>

Mi código actualmente produce esto: grrr

¿Fue útil?

Solución

Paso # 1:. Usa una base RelativeLayout

Paso # 2: Ponga su ImageButton como tener android:layout_alignParentRight="true"

Paso # 3: Pon tu TextView ha tener android:layout_alignParentLeft="true", android:layout_toLeftOf="..." (donde ... es el ID de su ImageButton), y quizás algún otro valor RelativeLayout.LayoutParams para la alineación vertical

Otros consejos

El siguiente fragmento de código proporciona un ejemplo de cómo crear una fila ListView que tiene algo de texto (horizontalmente alineado a la izquierda, a través de android:layout_alignParentLeft="true"), y un icono (horizontalmente alineado a la derecha a través de android:layout_alignParentRight="true"), y todo centrado verticalmente (android:layout_centerVertical="true") .

Se hace de la siguiente manera (tu caso es distinto, dependiendo de estilos globales):

representación de ejemplo de código

También hay un icono adicional comentado de salida que puede ser colocado a la izquierda del icono más a la derecha; suprima las etiquetas XML para habilitar.

Aquí está el diseño XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:descendantFocusability="blocksDescendants"
    android:padding="6dp">
    <!-- Note: android:descendantFocusability="blocksDescendants" set to ensure that
     OnItemClickListener works by ensuring constituent controls do not take focus -->


    <TextView
        android:id="@+id/lbl_list_item_row_text"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:lines="1"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:text="My List Item Text"
        />

    <!-- This can be uncommented to add another button 

    <ImageButton
        android:id="@+id/btn_additional_icon"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/icon_additional_icon"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:padding="3dp"
        android:background="@null" 
        android:src="@drawable/icon_additional_icon" />

    -->

    <ImageButton
        android:id="@+id/icon_additional_icon"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:background="@null"
        android:padding="3dp"
        android:src="@drawable/icon_right_aligned_icon" />
</RelativeLayout>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top