Navegación permanenteVerifique el enfoque suelto después de seleccionar un elemento

Comencé un proyecto con un cajón de navegación de la plantilla básica de Android Studio. La única modificación que hice fue mostrarla como permanente con el fin de tener un diseño de tableta / TV.

Para lograr esto, la única modificación que hice fue en el diseño xml. Esto permite que el NavigationView esté siempre visible.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="300dp" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <include layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Content will come here" /> </LinearLayout> </LinearLayout> 

También puse el proyecto en Github, así que cualquiera puede probarlo.

DEMO DE PROYECTO EN GITHUB

Https://github.com/ChristopheVersieux/NavFocus

QUE ESTA PASANDO

Mi problema se produce cuando empiezo a seleccionar los elementos del cajón con el D-pad. Una vez seleccionado un elemento, el foco se pierde por completo. Tratar de volver al cajón y conseguir el enfoque parece muy difícil y tengo que probar varias veces con flechas derecha / izquierda

LO QUE SE ESPERA:

El cajón debe mantener el enfoque, o el enfoque debe ser fácil de traer de vuelta al cajón.

LO QUE INTENTÉ:

La idea más simple que tuve fue forzar al Cajón a volver a enfocar, pero este código no cambia nada:

 navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { menuItem.setChecked(true); //This is where I will replace the Fragments in the right area. navigationView.clearFocus(); navigationView.requestFocus(); return true; } }); 

Muchas gracias por tu ayuda.

Empezaría por eliminar android:layout_gravity="start" Esto simplemente no es necesario ya que su padre es un LinearLayout horizontal.

El cajón de navegación debe estar permanentemente visible en las tabletas y en la TV. Ellos permanecen ocultos para móviles. Éstos son parte de las pautas del diseño material.

Esto requiere una configuración bastante diferente en comparación con lo que veo en su proyecto en GitHub. Incluye el suministro de diferentes recursos mediante calificadores.

Este tutorial sobre el cajón de navegación (soporte de diseño) le ayudará con exactamente esa configuración, según las últimas directrices de diseño de materiales. Alternativamente, los archivos del proyecto para el tutorial se pueden encontrar en GitHub .

ACTUALIZACIÓN: Como se ha señalado, la biblioteca de soporte v24 crea problemas con el dpad. Revertir a v23 funciona muy bien.

  • Eclipse editText eliminar el foco (cursor) cuando se hace presionado
  • Establecer el área de enfoque de la cámara en Android
  • Manejo de enfoque personalizado de ViewGroup
  • Desplazamiento del foco de RecyclerView
  • Amplíe y dé enfoque a SearchView automáticamente
  • Los elementos secundarios ExpandableListView no obtienen el enfoque cuando se tocan
  • Calcula cuánto tráfico de red generan otras aplicaciones de Android
  • Multiple EditText - especifica la ubicación del cursor
  • Android EditText: perder el enfoque después de la entrada
  • Grupo de radio no está recibiendo el foco en Android
  • Android: se centra en EditText después de la selección de Spinner
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.