當ListView設置了OnItemClickListener, Item項裏的View設置了OnClickListener時, spa
常常遇到某一個Listener失效的現象.orm
根本緣由是焦點的問題,
事件
當item項目中某個View可以獲取焦點時, 根據View焦點傳遞的規則會優先接受點擊事件,
it
如此就會致使ListView的OnItemClickListener失效.List
由於可以自動獲取焦點的View有優先獲取點擊事件的權利,方法
OnItemClickListener是在Item的父節點, 因此它是最後一個處理點擊事件的(雖然最早接收, 項目
可是先分發給子View, 子View處理完後, 最後本身處理). 若是子View處理並消化了點擊事件, ab
那麼OnItemClickListener久失效了.focus
解決的方法:
1 你能夠放棄OnItemClickListener, 只是用OnClickListener.
2 檢查你的Item裏, 時候有focusable=true 和 focusableInTouchMode=true的View.
若是有, 把他們都設置成false.