AN子控制元件將點選事件給父控制元件
阿新 • • 發佈:2019-02-15
今天遇到一個小問題。
如圖這個CheckBox控制元件外面包裹了一個Relativelayout。
想讓使用者點選Relativelayout就觸發CheckBox的點選事件選中事件。把點選事件給了Relativelayout。
本來沒有什麼問題 。點選的時候發現是可以觸發checkbox的點選事件。但是在點選checkbox本身的時候。
並沒有觸發到Relativelayout的點選事件。這說明CheckBox自己觸發了自己的點選事件。想到的解決辦法
就是給CheckBox繼續設定點選事件。讓後處理的邏輯和Relativelayout的點選事件完全一樣。
覺得這樣做好麻煩。有沒有什麼好的辦法。讓CheckBox把點選事件給Relativelayout處理。後來查資料發現。
在佈局檔案中就可以解決這個問題。
<RelativeLayout android:id="@+id/rl_item_cb" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="0.5" android:clickable="true"> <CheckBox android:id="@+id/cb_item" android:duplicateParentState="true"android:clickable="false"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="@null" android:button="@drawable/check_box_select" /> </RelativeLayout>
如上圖示紅的屬性:
給父佈局設定:
android:clickable=“true”
給子控制元件設定:
android:duplicateParentState="true" //點選事件跟隨父佈局。
android:clickable="false" //禁掉子控制元件的點選事件