2011-06-27 16 views
10

Estoy tratando de obtener mis elementos de lista en un clic de ListView. En este momento se puede hacer clic (ver mi captura de pantalla) pero solo se puede hacer clic dentro del rectángulo que ocupa el texto.Ancho del área clicable en ListView w/onListItemClick

Estoy usando protected void onListItemClick(ListView l, View v, int position, long id) { para los elementos de la lista seleccionable.

Aquí es mi list.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
<ListView android:id="@+id/android:list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
<TextView android:id="@+id/android:empty" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/no_favorites"/> 

y mi row.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 
    <TextView android:id="@+id/artist" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
    <TextView android:id="@+id/songtitle" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:layout_alignParentRight="true"/> 
    <TextView android:id="@+id/album" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:layout_alignParentRight="true"/> 
    <TextView android:id="@+id/playtime" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:layout_alignParentRight="true"/> 
    <TextView android:id="@+id/playlistnum" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:layout_alignParentRight="true" 
     android:visibility="gone" /> 
</LinearLayout> 

Y here's the screenshot example: (Los nuevos usuarios no están autorizados a publicar imágenes. .. refunfuñar ... tener un hipervínculo!)

En list.xml, Listview tiene y roid: layout_width = "fill_parent" por lo que debe ser el ancho completo de la pantalla. (Todos los elementos en row.xml también son width = "fill_parent".) ¿Qué me estoy perdiendo?

Respuesta

11

El TextView en su list.xml debe establecerse en fill_parent. La selección se ajustará al ancho del ListView padre.

 android:layout_width="wrap_content" 
+0

Lo intenté, no funcionó. Ese TextView solo se usa cuando la lista está vacía. :/ – Civilian

+3

hmmm .... Ah, solo otra diferencia en mi código y el tuyo sería el LinearLayout también configurado para fill_parent en el layout_width. Pruébalo. Si eso no funciona, abriré mi código y lo publicaré aquí. – JLB

+3

Para que quede claro me estaba refiriendo a LinearLayout en su list.xml en mi último comentario. Está configurado para wrap_content. Funcionó para mí cambiando eso a fill_parent. – JLB

Cuestiones relacionadas