ListView不響應OnItemClickListener的解決方案

weixin_34365417發表於2016-04-28

一般會導致這個問題的原因是因為在自定義Listview Item時,Item中含有Button、CheckBox、RadioButton等控制元件,ListView預設會把Touch事件交給這些子控制元件,如果Touch事件被子控制元件消費了,ListView自然就無法觸發OnItemClickListener事件。
解決這個問題可以通過設定 android:descendantFocusability=blocksDescendants屬性來強制獲取焦點即可。

android:descendantFocusabilit有三個屬性值:

Constant value description
beforeDescendants 0 Viewgroup會優先其子類控制元件獲取焦點
afterDescendants 1 Viewgroup只有當子類控制元件不需要獲取焦點時才獲取焦點
blocksDescendants 2 Viewgroup會覆蓋子類控制元件而直接獲取焦點

相關文章