2012-05-15 65 views
15

當我與裏面的一些其他LinearLayouts一個LinearLayout中。兒童佈局具有背景選擇器集。當我按下一個孩子時,我需要更改父佈局的顏色。我也爲父級設置了背景選擇器,但只有在任何子級以外點擊時纔會觸發。安卓:讓家長選擇觸發選擇孩子

我該如何避免這種情況?

謝謝!

回答

39

嘗試添加此佈局屬性父的LinearLayout:

android:addStatesFromChildren="true" 

另外,在代碼中調用:

parentLayout.setAddStatesFromChildren(true); 

在這兩種情況下,要確保孩子的佈局做設置了android:duplicateParentState屬性(並且不要調用setDuplicateParentState(true)),否則當系統檢測到循環依賴關係時,您將在運行時收到異常。

+0

你會如何做相反:接觸容器,當觸發孩子的選擇? –

+0

@androiddeveloper - 你可以在孩子中使用'android:duplicateParentState'。然後,孩子將使用其父母可繪製狀態而不是自己的狀態。然後父母必須是可點擊的,可選擇的,或任何你需要孩子的東西。 –

+0

我明白了。是否可以將選擇器設置在頂部?另外,是否有不同的解決方案listView項目(其中每個項目是一個佈局與我寫在這裏的視圖)? –