Saya telah menghabiskan sekitar 6 jam sejauh ini, dan tidak menemukan apa-apa selain rintangan. Premis umumnya adalah bahwa ada beberapa baris dalam a ListView
(apakah itu dibuat oleh adaptor, atau ditambahkan sebagai tampilan header) yang berisi EditText
widget dan file Button
. Yang ingin saya lakukan adalah dapat menggunakan jogball / panah, untuk menavigasi selektor ke item individual seperti biasa, tetapi ketika saya sampai ke baris tertentu - bahkan jika saya harus secara eksplisit mengidentifikasi baris - yang memiliki fokus yang dapat difokuskan Nak, saya ingin anak itu mengambil fokus daripada menunjukkan posisi dengan selektor.
Saya sudah mencoba banyak kemungkinan, dan sejauh ini tidak berhasil.
tata letak:
<ListView
android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
Tampilan header:
EditText view = new EditText(this);
listView.addHeaderView(view, null, true);
Dengan asumsi ada item lain di adaptor, menggunakan tombol panah akan memindahkan pilihan ke atas / bawah dalam daftar, seperti yang diharapkan; tetapi ketika sampai ke baris header, itu juga ditampilkan dengan selektor, dan tidak ada cara untuk fokus ke dalam EditText
menggunakan jogball. Catatan: mengetuk pada EditText
akan memfokuskannya pada saat itu, namun itu bergantung pada layar sentuh, yang seharusnya tidak menjadi persyaratan.
ListView
rupanya memiliki dua mode dalam hal ini:
1 setItemsCanFocus(true)
.: selektor tidak pernah ditampilkan, tetapi EditText
bisa mendapatkan fokus saat menggunakan panah. Algoritme penelusuran fokus sulit untuk diprediksi, dan tidak ada umpan balik visual (pada baris mana pun: memiliki turunan yang dapat difokuskan atau tidak) pada item mana yang dipilih, yang keduanya dapat memberikan pengalaman yang tidak terduga kepada pengguna.
2 setItemsCanFocus(false)
.: selektor selalu digambar dalam mode non-sentuh, dan EditText
tidak pernah bisa mendapatkan fokus - bahkan jika Anda mengetuknya.
Untuk memperburuk keadaan, memanggil editTextView.requestFocus()
mengembalikan true, tetapi pada kenyataannya tidak memberikan fokus EditText.
Apa yang saya bayangkan pada dasarnya adalah gabungan dari 1 & 2, di mana daripada pengaturan daftar jika semua item dapat difokuskan atau tidak, saya ingin mengatur fokusabilitas untuk satu item dalam daftar, sehingga selektor transisi mulus dari memilih seluruh baris untuk item yang tidak dapat difokuskan, dan melintasi pohon fokus untuk item yang berisi turunan yang dapat difokuskan.
Ada yang mau?