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:
- TextView marquee
- Después de que los botones de cambio de orientación de un widget no responden
- Android: Galería de subclases no se desplaza por evento onKeyDown
- Drop-menu en ListView para Android
- Android: pasar el objeto del widget de recopilación a la actividad
<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>
- Cómo disparar onListItemClick en Listactivity con los botones en la lista?
- Cierre del Popup en Android
- Android Studio: EditText editable es obsoleto Cómo utilizar inputType
- Dibujar lienzo en el widget de pantalla de inicio
- ¿Es posible usar un ListView sin ListActivity en Mono Android?
- Cómo obtener el ancho y la altura de la pantalla
- Android obtiene la ruta de origen de vídeo de VideoView
- En el Listener del llamador llamado dos veces
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.
-
Diseño de la vista de cuadrícula:
<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:listSelector="@drawable/gridselector"/>
-
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>
- Cualquier forma de ocultar elementos de la webview? (androide)
- ¿Alguien ha escrito una librería de Android para Pusher?