Android 中ListView的Item點擊事件失效的快速解決方法
在平常的開發(fā)過程中,我們的ListView可能不只是簡單的顯示下文本或者按鈕,更多的是顯示復雜的布局,這樣的話,我們就得自己寫布局和自定義adapter了,一般是繼承于BaseAdapter,示例代碼見下方。寫ListView的點擊事件時OnItemClickListener,onItemClick方法沒有執(zhí)行,導致ListView中Item條目點擊事件失效,而Item中的View點擊事件可以在getView方法中進行處理。導致整個Item點擊失效的原因多半是由于在【你自己定義的Item中存在諸如ImageButton,Button,CheckBox等子控件(也可以說是Button或者Checkable的子類控件)】,此時這些子控件會將焦點獲取到,所以常常當點擊item時變化的是子控件,item本身的點擊沒有響應。
這時候就可以使用descendantFocusability來解決,其中descendantFocusability對應的屬性有3個
該屬性是當一個為view獲取焦點時,定義viewGroup和其子控件兩者之間的關系。
屬性的值有三種:
beforeDescendants:viewgroup會優(yōu)先其子類控件而獲取到焦點
afterDescendants:viewgroup只有當其子類控件不需要獲取焦點時才獲取焦點
blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點
通常我們用到的是第三種,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的屬性就好了
我遇到的情況時item布局有一個ImageButton按鈕,因為這個組件搶事件能力強,根button差不多;因此運行后,listviewitem點擊失效。使用上邊方式解決問題;當然也可以改變imagebutton為imageview也可以解決這個問題。
相關文章
Android編程設置TextView顏色setTextColor用法實例
這篇文章主要介紹了Android編程設置TextView顏色setTextColor用法,結合實例形式分析了Android設置TextView顏色setTextColor、ColorStateList等方法的使用技巧與布局文件的設置方法,需要的朋友可以參考下2016-01-01Android中HttpURLConnection類使用介紹
早些時候其實我們都習慣性使用HttpClient,但是后來Android6.0之后不再支持HttpClient,需要添加Apache的jar才行,所以,就有很多開發(fā)者放棄使用HttpClient了,HttpURLConnection畢竟是標準Java接口(java.net) ,適配性還是很強的2022-12-12Android消息推送:手把手教你集成小米推送(附demo)
本篇文章主要介紹了Android消息推送:手把手教你集成小米推送,非常具有實用價值,需要的朋友可以參考下。2016-12-12Android開發(fā)之基于DialogFragment創(chuàng)建對話框的方法示例
這篇文章主要介紹了Android開發(fā)之基于DialogFragment創(chuàng)建對話框的方法,結合實例形式分析了DialogFragment創(chuàng)建對話框的具體功能與布局相關實現技巧,需要的朋友可以參考下2017-08-08