Di NavigationView saya, saya memiliki tata letak tajuk dengan id 'viewId' dengan tombol aktif. Untuk mengatur tombol-tombol itu, saya melakukan hal berikut dalam aktivitas onPostCreate
:
final View panel = findViewById(R.id.viewId);
panel.setOnClickListener(new View.OnClickListener() {
... setup goes here ...
});
Dengan pustaka dukungan android versi baru, ( 23.1.0 ), tampilan tidak dapat ditemukan, menghasilkan null. Dengan versi sebelumnya itu bekerja dengan baik. Apakah ini bug atau apakah saya menggunakan fitur ini salah? Jika demikian, bagaimana cara mengakses tata letak tajuk dan menambahkan perilaku ke dalamnya?
inflateHeaderView
, itu melampirkan tampilan untuk Anda di lapisan yang benarRecyclerView
dengan orang tua yang benar - sesuatu yang tidak dapat Anda lakukan secara eksternalNavigationView
.Sekarang dengan rilis 23.1.1 perpustakaan dukungan desain, Anda dapat menggunakan
sumber
navigationView.getHeaderCount()
jika Anda memiliki lebih dari 1 tajuk untuk alasan apa pun.Ini adalah bagaimana saya menggunakannya
ButterKnife
dan berfungsi untuk saya.dan kemudian gunakan pemegang tampilan ini seperti ini:
sumber
Bagi saya itu adalah situasi yang sama dengan 23.1.0, setelah memperbarui pengecualian null pointer menjadi. Dalam hal ini
NavigatorView
terlihat seperti:Saya mencoba proposal solusi oleh ianhanniballake tetapi tidak berhasil. Lalu saya menggelembungkan kalimat itu:
Setelah itu, saya dapat menemukan id semua tampilan yang didefinisikan dalam
nav_heard
tata letak.sumber
sumber
Dalam kode Kotlin @ Francois Dermu menjadi seperti
sumber
Versi Kotlin.
sumber