android 父佈局覆蓋子控件點擊事件問題

項目中listview中嵌套checkbox,將父控件設置爲android:descendantFocusability="blocksDescendants",

這樣設置爲的是:會覆蓋子類控件而直接獲得焦點,即點擊listview的item區域即可選中checkbox。

按照正常使用點擊item的空白區域選擇時沒有問題的,但是當你單獨點擊checkbox時,CheckBox沒有相應的點擊事件,而父控件也沒有捕獲。導致的問題是:顯示的是選擇了,但是實際上並沒有捕獲點擊事件。


嘗試方案1:

給父佈局設置:

android:clickable=“true”

給子控件設置:

android:duplicateParentState="true"  //點擊事件跟隨父佈局。

android:clickable="false" //禁掉子控件的點擊事件

結果爲整個listview不能接受點擊事件。

解決辦法:
android:descendantFocusability="blocksDescendants",此 設置不變,父控件繼續覆蓋子控件獲取焦點,子控件設置爲

android:clickable="false",當子控件設置爲不可點擊時,父控件接受其點擊事件。完美解決問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章