En mi NavigationView tengo un diseño de encabezado con ID 'viewId' con botones activos. Para configurar esos botones, hago lo siguiente en la actividad onPostCreate
:
final View panel = findViewById(R.id.viewId);
panel.setOnClickListener(new View.OnClickListener() {
... setup goes here ...
});
Con la nueva versión de la biblioteca de soporte de Android, ( 23.1.0 ), la vista no se puede encontrar, devuelve nulo. Con versiones anteriores funcionó bien. ¿Es un error o estoy usando mal esta función? Si es así, ¿cómo acceder al diseño del encabezado y agregarle comportamiento?
inflateHeaderView
, adjunta la Vista por usted en la capa correctaRecyclerView
con el padre correcto, algo que no puede hacer externamenteNavigationView
.Ahora con la versión 23.1.1 de la biblioteca de soporte de diseño, puede usar
fuente
navigationView.getHeaderCount()
en caso de que tenga más de 1 encabezado por cualquier razón.Así es como lo hice usando
ButterKnife
y funciona para mí.y luego use este soporte de vista de esta manera:
fuente
Para mí esa era la misma situación con 23.1.0, después de la actualización se convirtió en la excepción de puntero nulo. En este caso, el
NavigatorView
aspecto es el siguiente:Intenté la propuesta de solución de ianhanniballake pero no funciona. Luego inflé con la oración:
Después de eso, puedo encontrar por id todas las vistas definidas en el
nav_heard
diseño.fuente
fuente
En Kotlin, el código de @Francois Dermu será como
fuente
Versión Kotlin.
fuente