ListSelector en ListView no funciona
Tengo mi listselector personalizado como este:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@drawable/bg_list_hover"></item> <item android:state_focused="true" android:drawable="@drawable/bg_list"></item> </selector>
y mi lista:
- Android: ListView selecciona el elemento y resalta el elemento seleccionado mediante programación
- Android listview, pase a la acción
- Cómo desplazar un ListView en android programatically a hasta gesto hacia abajo
- Android ListView Deslizar hacia la derecha y hacia la izquierda para aceptar y rechazar
- Snap de vista de lista al elemento
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/bg_dasar" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="StoreCategory" android:textSize="15sp" android:paddingLeft="10dip" android:paddingTop="10dip" android:paddingRight="10dip" android:textColor="@color/textcolor"/> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dip" android:listSelector="@drawable/listselector"> </ListView>
mi problema es, cuando no haga clic en listview, elemento de lista de vista no utilice fondo de estado enfocado ( @drawable/bg_list
) …
cualquiera puede ayudarme por favor ???
- Cómo configurar onContextItemClickListener para un menú contextual de ListView?
- Cambiar el color de fondo del elemento listview actual en el método getView del adaptador
- Androide. RadioButtons en un ListView
- ListView de Android con casillas de verificación?
- ListView: ¿Cómo permanecer resaltado / seleccionado después de pulsar el botón Atrás?
- ¿Cómo puedo retrasar la carga de vistas en mi adaptador de lista mientras el usuario se desplaza rápidamente
- ANDROID: Agregar espacio vacío al final de ListView
- Android - FirebaseListAdapter en orden inverso?
Para los que todavía lo necesitan: La clave es establecer el listSelector como fondo para el elemento de la lista!
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#819FF7" android:orientation="vertical" > <ListView android:id="@+id/mainList" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cacheColorHint="#819FF7" /> </LinearLayout>
list_item.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lineItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/list_selector"> <ImageView android:id="@+id/imageView" android:layout_width="96dp" android:layout_height="64dp" android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" /> <TextView android:id="@+id/textView" android:layout_toRightOf="@+id/imageView" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:layout_centerVertical="true" android:textSize="18sp" android:textColor="#ff000000" android:layout_width="wrap_content" /> <Button android:id="@+id/button" android:gravity="center" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="10dp" android:layout_alignParentRight="true" android:focusable="false" android:text="Delete" /> </RelativeLayout>
He resuelto mi problema, por leer alguna referencia .. mi listselector debe ser como esto:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@drawable/bg_list_hover" /> <item android:drawable="@drawable/bg_list" /> </selector>
mi esquema de vista de lista:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/bg_dasar" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="StoreCategory" android:textSize="15sp" android:paddingLeft="10dip" android:paddingTop="10dip" android:paddingRight="10dip" android:textColor="@color/textcolor"/> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dip" **android:listSelector="@android:color/transparent"**> </ListView> </LinearLayout>
y mi también agregando mi selector de la lista en mi fondo del artículo de la lista:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="55dip" android:orientation="horizontal" android:padding="15dip" android:gravity="center_vertical" **android:background="@drawable/listselector"**> <ImageView android:id="@+id/imageViewlogo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dip" /> <TextView android:id="@+id/textViewcategory" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:textColor="@color/textcolor" android:textSize="15sp"/> </LinearLayout>
gracias por Jay y danwilkie por responder mi pregunta .. :))
¿Has intentado llamar a "requestFocus ()" en el listView en tu código después de configurar android: focusable = "true" en el xml? Desde la vista Documentos:
"Llamar a esto para tratar de dar enfoque a una vista específica oa uno de sus descendientes.Una vista realmente no tomará el foco si no se puede enfocar (isFocusable () devuelve false), o si es focusable y no se puede enfocar en touch mode (isFocusableInTouchMode ()) mientras el dispositivo está en modo touch.Consulte también focusSearch (int), que es lo que usted llama para decir que tiene el enfoque, y desea que su padre para buscar el siguiente.Esto es equivalente a calling requestFocus (int, Rect) con argumentos FOCUS_DOWN y null. "
Parece que su selector xml en este momento está diciendo usar bg_list_hover cuando hace clic en un elemento, y bg_list cuando se enfoca en un elemento (usando una trackball, por ejemplo).
Si desea utilizar un drawable personalizado en el caso predeterminado cuando el elemento no se hace clic ni se enfoca, debe agregar una entrada para eso:
Yo usaría algo como esto:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@drawable/bg_list_pressed"></item> <item android:state_focused="true" android:drawable="@drawable/bg_list_focused"></item> <item android:drawable="@drawable/bg_list"></item> </selector>
- Eclipse no reconocerá mi tablet Android cuando intente probar mi aplicación?
- Necesito ayuda para seleccionar la versión correcta de jdk para mi 64bit Windows 7