ListView Item點擊事件失效

學習android ,練習使用ListView的時候出現了一個問題,Item點擊事件失效,點擊listview沒有反應。

網上查了一下,原來是ListView的Item搶佔焦點或者Item沒有獲取焦點甚至沒有綁定上OnItemClickListener監聽事件。在listview的佈局文件中有Button,ImageButton等子控件,這些子控件會將點擊的焦點獲取到,所以在點擊item的時候,其實是能夠獲取焦點的子控件在變化,默認是其子控件優先獲得焦點的,而item的setOnItemClickListener事件沒有觸發。

解決方法是在item的佈局文件的根中使用:android:descendantFocusability="blocksDescendants"設置,官方API解釋(android.view.ViewGroup):

當一個爲view獲取焦點時,定義viewGroup和其子控件兩者之間的關係。
屬性的值有三種:
        beforeDescendants:viewgroup會優先其子類控件而獲取到焦點
 
        afterDescendants:viewgroup只有當其子類控件不需要獲取焦點時才獲取焦點
 
        blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點

     


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章