Masalah fokus ListView
Pengenalan kepada bahagian ini
Jika anda menambah Butang, Kotak Semak, EditText dan kawalan lain pada Item ListView, anda mungkin perlu mempertimbangkan Kepada masalah: masalah fokus ListView! Dalam bahagian ini kita akan mempelajari beberapa cara untuk menyelesaikan masalah ini!
Kami boleh menulis listView ringkas dengan Butang, Kotak Semak dan EditText, tetapi apabila kami mengklik, kami mendapati bahawa Item ListView tidak boleh diklik, kaedah onItemClick tidak boleh dicetuskan dan kaedah onItemLongClick tidak boleh dicetuskan. Ini ialah isu fokus ListView! Ini bermakna bahawa tumpuan ListView dirampas oleh kawalan lain Mari kita lihat bagaimana Selesaikan masalah ini?
Kaedah 1: Set: android:focusable="false" untuk komponen yang telah mendahului tetapan Kawalan kawalan
android:focusable="false"boleh menyelesaikannya masalah Atau hubungi selepas mendapat kawalan dalam kod:setFocusable(false)!! Selain itu, EditText tidak berfungsi Jika kita menetapkan android:focusable="false", B ini boleh mendapat fokus tetapi semua a mengejut Fokus hilang lagi, dan papan kekunci kecil tidak akan muncul. Saya tidak tahu bagaimana untuk menyelesaikannya Jika anda tahu penyelesaiannya, sila beritahu saya, terima kasih~
Kaedah 2: Tetapkan nod akar item android:descendantFocusability="blocksDescendants"
Seperti yang dinyatakan, dalam Item Hanya tambahkan atribut di atas pada nod akar reka letak,
android:descendantFocusability="blocksDescendants"Selain itu, atribut ini mempunyai tiga nilai pilihan:beforeDescendants
: viewgroup akan memberi keutamaan kepada kawalan subkelasnya dan mendapatkan fokus
Ringkasan bahagian ini:- afterDescendants
: viewgroup hanya akan memperoleh fokus apabila kawalan subclassnya tidak perlu mendapatkan fokus- blocksDescendants
: Kumpulan pandangan akan mengatasi kawalan subkelas dan terus mendapat fokus