Saya tahu cara mendapatkan tampilan root dengan View.getRootView () . Saya juga bisa mendapatkan tampilan dari acara tombol di onClick
mana argumennya adalah Tampilan . Tetapi bagaimana saya bisa mendapatkan tampilan dalam suatu kegiatan ?
android
android-activity
view
Lalith
sumber
sumber
setContentView()
dan pandangan yang Anda berikan sudah menjadi root. Jika Anda perlu menangani tampilan itu, cukup masukkan ID di XAML danfindViewById()
akan baik-baik saja.Jawaban:
Jika Anda membutuhkan tampilan root dari aktivitas Anda (sehingga Anda dapat menambahkan konten Anda di sana) gunakan
Juga dilaporkan bahwa pada beberapa perangkat Anda harus menggunakan
sebagai gantinya.
Harap perhatikan bahwa seperti yang dilaporkan Booger, ini mungkin berada di belakang bilah navigasi (dengan tombol kembali dll.) Pada beberapa perangkat (tetapi tampaknya pada sebagian besar perangkat tidak).
Jika Anda perlu mendapatkan tampilan yang Anda tambahkan ke aktivitas Anda menggunakan
setContentView()
metode maka sebagai pottedmeat menulis Anda dapat menggunakanTetapi lebih baik atur id ke tampilan ini di layout xml Anda dan gunakan id ini sebagai gantinya.
sumber
Ini yang saya gunakan untuk mendapatkan tampilan root seperti yang ditemukan dalam file XML yang ditugaskan
setContentView
:sumber
ActionBar
juga?Saya menguji ini di android 4.0.3, hanya:
berikan pandangan yang sama dari apa yang kita dapatkan
dan
memberi anak itu
Mohon konfirmasi.
sumber
Dapatkan tampilan root dari aktivitas saat ini.
Di dalam aktivitas kami, kami dapat
root
melihat:atau
sumber
Di Kotlin kita bisa melakukannya sedikit lebih pendek:
sumber
Hanya memetikan Seseorang membutuhkan cara yang lebih mudah:
Kode berikut memberikan pandangan tentang seluruh aktivitas:
View v1 = getWindow().getDecorView().getRootView();
Untuk mendapatkan tampilan yang pasti dalam aktivitas, misalnya imageView di dalam aktivitas, cukup tambahkan id dari tampilan yang ingin Anda dapatkan:
Semoga ini bisa membantu seseorang
sumber
findViewById(R.id.imageView1);
aktivitas jika Anda ingin tampilan tertentu.anyview.getRootView();
akan menjadi cara termudah.sumber
Solusi Ekstensi Kotlin
Gunakan ini untuk menyederhanakan akses dalam suatu Kegiatan. Kemudian Anda dapat merujuk langsung
rootView
dari Aktivitas, atau diactivity.rootView
luarnya:Jika Anda ingin menambahkan yang sama untuk Fragmen untuk konsistensi, tambahkan:
sumber
untuk mendapatkan Tampilan Aktivitas saat ini
di onClick manapun kita akan mendapatkan "View view", dengan menggunakan 'view' get the rootView.
Lihat tampilan = view.getRootView ();
dan untuk mendapatkan View secara terpisah
Lihat tampilan = FragmentClass.getView ();
sumber
jika Anda berada dalam suatu kegiatan, anggap hanya ada satu tampilan root, Anda bisa mendapatkannya seperti ini.
Anda kemudian dapat melemparkannya ke kelas Anda yang sebenarnya
atau Anda bisa menggunakan
perhatikan ini akan mencakup tampilan actionbar, tampilan Anda di bawah tampilan actionbar
sumber
Activity
kelas.Bagi Anda yang menggunakan Perpustakaan Binding Data , untuk mendapatkan root dari aktivitas saat ini, cukup gunakan:
Dan untuk pengguna Kotlin, itu bahkan lebih sederhana:
sumber
Solusi Ekstensi Kotlin lainnya
Jika tampilan aktivitas Anda dinyatakan dalam xml (ex
activity_root.xml
), buka xml dan berikan id ke tampilan root:Sekarang di kelas Anda, impor tampilan menggunakan:
Anda sekarang dapat menggunakan
root_activity
sebagai tampilan.sumber