W moim NavigationView mam układ nagłówka z identyfikatorem „viewId” z aktywnymi przyciskami. Aby skonfigurować te przyciski, wykonuję następujące czynności onPostCreate
:
final View panel = findViewById(R.id.viewId);
panel.setOnClickListener(new View.OnClickListener() {
... setup goes here ...
});
W nowej wersji biblioteki obsługi systemu Android ( 23.1.0 ) nie można znaleźć widoku, zwraca on null. Z poprzednimi wersjami działało dobrze. Czy to błąd, czy też źle używam tej funkcji? Jeśli tak, jak uzyskać dostęp do układu nagłówka i dodać do niego zachowanie?
inflateHeaderView
, dołącza on dla ciebie Widok we właściwej warstwieRecyclerView
z właściwym rodzicem - coś, czego nie możesz zrobić zewnętrznieNavigationView
.Teraz, w wersji 23.1.1 biblioteki obsługi projektowania, możesz używać
źródło
navigationView.getHeaderCount()
jeśli masz więcej niż 1 nagłówek z dowolnego powodu.Tak to zrobiłem
ButterKnife
i działa na mnie.a następnie użyj tego uchwytu widoku w następujący sposób:
źródło
Dla mnie była to ta sama sytuacja z 23.1.0, po aktualizacji stał się wyjątek zerowego wskaźnika. W tym przypadku
NavigatorView
wygląda to tak:Wypróbowałem propozycję rozwiązania autorstwa ianhanniballake, ale nie działa. Potem nadmuchałem zdaniem:
Potem mogę znaleźć według id wszystkie widoki zdefiniowane w
nav_heard
układzie.źródło
źródło
W Kotlin @Francois Dermu kod będzie podobny
źródło
Wersja Kotlin.
źródło