關於listView的item失去焦點不能點選
阿新 • • 發佈:2019-01-02
今天遇到了一個問題,我在listview的item上加了一個buttton結果發現item不能點選了。後來查了一下才知道原因:如果listView的adapter中不只是簡單的文字顯示,比如說還有ImageButton,那麼ImageButton會搶掉listView的item的焦點。導致item不能獲取到焦點。因為自定義ListViewItem中有Button或者Checkable的子類控制元件的話,那麼預設focus是交給了子控制元件,而ListView的Item能被選中的基礎是它能獲取Focus,也就是說我們可以通過將ListView中Item中包含的所有控制元件的focusable屬性設定為false,這樣的話ListView的Item自動獲得了Focus的許可權,也就可以被選中了,也就會響應onItemClickListener中的onItemClick()方法,然而將ListView的Item
Layout的子控制元件focusable屬性設定為false有點繁瑣,我們可以通過對Item Layout的根控制元件設定其android:descendantFocusability=”blocksDescendants”即可,這樣Item Layout就遮蔽了所有子控制元件獲取Focus的許可權,不需要針對Item Layout中的每一個控制元件重新設定focusable屬性了,如此就可以順利的響應onItemClickListener中的onItemClick()方法了。
所以總結一下,最簡單的解決方法就是在ListView的Item選項的佈局檔案根上加上android:descendantFocusability=”blocksDescendants”就可以了。
原文連結:http://blog.sina.com.cn/s/blog_6854b8350101hpgj.html