1. 程式人生 > >AN子控制元件將點選事件給父控制元件

AN子控制元件將點選事件給父控制元件

今天遇到一個小問題。


如圖這個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" //禁掉子控制元件的點選事件