Cajón de navegación resaltar elemento seleccionado no funciona

Estoy tratando de resaltar el elemento de cajón de nav seleccionado, pero no funciona. Sólo se resalta al pulsar los elementos pero no permanece resaltado después de seleccionar el elemento.

Tengo el siguiente código:

El ListView:

<ListView android:id="@+id/drawer_listview" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:choiceMode="singleChoice" android:divider="@color/drawer_divider" android:dividerHeight="@dimen/drawer_divider_height" android:listSelector="@drawable/list_selector_holo_light" /> 

El Selector:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@android:color/transparent" android:state_window_focused="false"/> <item android:drawable="@drawable/list_selector_disabled_holo_light" android:state_enabled="false" android:state_focused="true" android:state_pressed="true"/> <item android:drawable="@drawable/list_selector_disabled_holo_light" android:state_enabled="false" android:state_focused="true"/> <item android:drawable="@drawable/list_selector_background_transition_holo_light" android:state_focused="true" android:state_pressed="true"/> <item android:drawable="@drawable/list_selector_background_transition_holo_light" android:state_focused="false" android:state_pressed="true"/> <item android:drawable="@drawable/list_activated_holo" android:state_activated="true" /> <item android:drawable="@drawable/list_focused_holo" android:state_focused="true"/> 

Los drawables son archivos de 9 parches generados con Android Holo Colors .

En mi actividad:

  mListView.setAdapter(mAdapter); mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); mListView.setItemChecked(1, true); // Testing mListView.setSelection(1); // Testing 

Por lo que sé, state_activated="true" en el selector es cuando el elemento listView está marcado / seleccionado. Pero no funciona.

Editar:

He definido android:background="@drawable/list_selector_holo_light" para el diseño de la fila y ahora está funcionando, pero todavía no tengo idea de por qué listSelector no está funcionando.

¿Qué versión de Android usas?

Creo que state_activated funciona para API de nivel 11 y superior.

He experimentado esto y con el fin de manejar Pre Honeycomb, creo un Adaptador personalizado para ListView y tener código siguiente en el método getView :

 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { if (mListView.isItemChecked(position)) { holder.tvDrawerItem.setBackgroundColor(R.drawable.list_activated_holo); } else { holder.tvDrawerItem.setBackgroundColor(mContext.getResources().getColor(android.R.color.transparent)); } } 

Addenda: soporte para Pre HoneyComb usando android support Library v4 .

Si usted supone que soporta Android 4 +, sólo tiene que comprobar Android Developer Muestra: http://developer.android.com/training/implementing-navigation/nav-drawer.html y marque drawer_list_layout. activatedBackgroundIndicator es lo que usted necesita:

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" ... android:background="?android:attr/activatedBackgroundIndicator" android:minHeight="?android:attr/listPreferredItemHeightSmall"/> 

¿Ha configurado el color de fondo en el elemento de la lista?

Si es así, ¿has android:drawSelectorOnTop="true" ?

 drawerList.setItemChecked(currentPosition,true); 

Donde drawerList es la lista de NavigationBar

  • ¿Cómo desplazar horizontalmente RecyclerView de forma programática?
  • Configuración del parámetro del diseño de android mediante programación
  • BringToFront no funciona en RecyclerView
  • Problemas de procesamiento de android.support.v7.internal.app.WindowsDecorActionBar
  • Establecimiento de subvases en un diseño mediante programación
  • Descartar el teclado cuando haga clic fuera de EditText en android
  • Custom ImageView bloquea el programa
  • Cómo agregar ExpandableListView a NavigationView
  • El atributo namespace de herramientas para mostrar el diseño en ViewPager en tiempo de diseño
  • Square ImageView
  • Conjunto ActionBarDrawerToggle en la esquina derecha
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.