W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
如果你往ListView的Item中添加了Button,CheckBox,EditText等控件的話,你可能需要考慮 到一個問題:ListView的一個焦點問題!本節(jié)我們就來學(xué)習(xí)下解決這個問題的幾個方法!
我們可以寫個簡答的listView,上面有一個Button,CheckBox,EditText,但是當(dāng)我們點擊發(fā)現(xiàn), ListView的item點擊不了,觸發(fā)不了onItemClick的方法,也觸發(fā)不了onItemLongClick方法, 這個就是ListView的一個焦點問題了!就是ListView的焦點被其他控件搶了,下面我們來看看如何 解決這個問題?
如題,只需為搶占了ListView Item焦點的控件設(shè)置android:focusable="false"即可解決這個問題 或者在代碼中獲得控件后調(diào)用:setFocusable(false) !!另外,EditText卻不行,如果我們設(shè)置了android:focusable="false",這B可以獲取焦點但是一下子 又失去了焦點,而且也不會彈出小鍵盤,暫不知道如何解決,聽別人說是ListView的一個bug,如果 有知道解決方法的歡迎告知下,謝謝~
如題,在Item布局的根節(jié)點添加上述屬性,android:descendantFocusability="blocksDescendants" 即可,另外該屬性有三個可供選擇的值:
- beforeDescendants:viewgroup會優(yōu)先其子類控件而獲取到焦點
- afterDescendants:viewgroup只有當(dāng)其子類控件不需要獲取焦點時才獲取焦點
- blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點
好的,以上就是解決ListView焦點問題的兩個方法,非常簡單,如果有關(guān)于EditText 焦點問題解決方案的歡迎提出,謝謝~
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: