El elemento de la vista de cuadrícula no se ilumina cuando se pulsa

Mi aplicación tiene una vista de cuadrícula, De forma predeterminada, Su elemento no se resalta cuando hago clic en él (no sé por qué?). Trato de añadir un selector de lista como a continuación, Pero no funciona demasiado,

<GridView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_above="@+id/load_more_process_id" android:layout_alignParentTop="true" android:drawSelectorOnTop="false" android:listSelector="@drawable/grid_selector" > </GridView> 

Aquí mi selector:

 <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@android:color/black"></item> <item android:state_pressed="false" android:drawable="@android:color/white"></item> 

Si tiene un elemento seleccionable en el contenido del elemento de lista (o las vistas de cada elemento de cuadrícula), el selector no se dibuja

Por ejemplo, si la plantilla para los elementos de la lista es:

 <LinearLayout android:orientation="horizontal" ... > <CheckBox android:id="@+id/checkBox" ... /> <TextView android:id+"@+id/textView" ... /> </LinearLayout> 

Entonces ListView no dibujará un selector para cada elemento ListView, porque el CheckBox es, de forma predeterminada, se puede enfocar.

Puede proporcionar un fondo en cada elemento que cambia con el estado de selección o deshabilitar el enfoque en todos los elementos que se pueden enfocar (lo que a su vez requiere que escriba un adaptador de fantasía de hadas para comprobar las casillas de verificación cuando cambia el estado de la selección.

p.ej:

 <CheckBox android:id="@+id/checkBox" android:focusable="false" ... /> 

Hará que un ListView encerrado comience a dibujar el selector de nuevo.

Ejemplo de un dibujo con estado:

Drawable / my_list_selector_bg.xml:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/list_background_pressed" android:state_pressed="true" /> <item android:drawable="@drawable/list_background_focused" android:state_focused="true" /> <item android:drawable="@android:color/transparent" /> </selector> 

A continuación, aplicar eso al fondo de cada vista devuelta por su adaptador:

 <LinearLayout android:orientation="horizontal" android:background="@drawable/my_list_selector_bg" ... > 

Cualquiera de los dos métodos funcionará.

La lista adpater classes (GridView, ListView, & c) llama a hasFocusable () en cada vista devuelta por el adaptador, e inhabilita el dibujo de selección si hasFocusable () devuelve true. Afortunadamente, también replican el estado de selección / enfoque / presionado / activo al elemento de adaptador actualmente seleccionado o seleccionado, por lo que puede dibujarlo usted mismo si lo desea.

Para aquellos de ustedes que están teniendo el mismo problema que yo era, intente

GridView.setDrawSelectorOnTop (true);

Tengo un ImageView y un TextView en cada uno de mis artículos de GridView. Mi selector estaba trabajando, pero estaba dibujando detrás de mi imagen.

  1. Diseño de la vista de cuadrícula:

      <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:listSelector="@drawable/gridselector"/> 
  2. Crear selector personalizado gridselector.xml como:

     <selector xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/selector_item"> <item android:state_pressed="true" android:drawable="@drawable/focus_offfocus"> </item> <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/focus_onfocus"> </item> <item android:state_enabled="true" android:drawable="@drawable/focus_offfocus"> </item> </selector> 
  • Android equivalente a CoreText
  • Cómo crear barra de progreso como la imagen en Android
  • El texto del botón del widget de Android 5.0 (Lollipop) está en TODOS LOS CAPS
  • Cómo actualizar un widget periódicamente, digamos cada 5 segundos
  • ¿Cómo mostrar un diseño encima del otro programmatically en mi caso?
  • Cómo hacer widget de la aplicación en ejecución en android?
  • Android: establece un borde alrededor de un ImageView
  • Falta de animación en R.anim y Progressbar en ImageSwitcher
  • ¿Cómo puedo aumentar el área táctil para los controles (ToggleButton)?
  • Rotación a un ImageView, dentro de un RelativeLayout
  • Android: hacer que el cajón corredizo se deslice de izquierda a derecha
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.