天天看點

我的Android進階之旅------>Android中ListView中嵌套(ListView)控件時item的點選事件不起作的問題解決方法

 

我的Android進階之旅------>Android中ListView中嵌套(ListView)控件時item的點選事件不起作的問題解決方法

開發中常常需要自己定義Listview,去繼承BaseAdapter,在adapter中按照需求進行編寫,問題就出現了,可能會發生點選每一個item的時候沒有反應,無法擷取的焦點。

如果你的自定義ListViewItem中有Button、ImageButton或者Checkable的子類控件的話,那麼預設focus是交給了子控件,而ListView的Item能被選中的基礎是它能擷取Focus。是以常常當點選item時變化的是子控件,item本身的點選沒有響應。

這時候就可以使用descendantFocusability屬性來解決,他可以設定一個控件如何處理觸摸事件,

該屬性是當一個為view擷取焦點時,定義viewGroup和其子控件兩者之間的關系。

屬性的值有三種:

是以我們可以通過對Item Layout的根控件設定其android:descendantFocusability=”blocksDescendants”來解決,這樣Item Layout就屏蔽了所有子控件擷取Focus的權限,如此就可以順利的響應onItemClickListener中的onItenClick()方法了。

                            ====================================================================================

  作者:歐陽鵬  歡迎轉載,與人分享是進步的源泉!

====================================================================================

我的Android進階之旅------>Android中ListView中嵌套(ListView)控件時item的點選事件不起作的問題解決方法

繼續閱讀