2012-05-15 67 views
15

当我与里面的一些其他LinearLayouts一个LinearLayout中。儿童布局具有背景选择器集。当我按下一个孩子时,我需要更改父布局的颜色。我也为父级设置了背景选择器,但只有在任何子级以外点击时才会触发。安卓:让家长选择触发选择孩子

我该如何避免这种情况?

谢谢!

回答

39

尝试添加此布局属性父的LinearLayout:

android:addStatesFromChildren="true" 

另外,在代码中调用:

parentLayout.setAddStatesFromChildren(true); 

在这两种情况下,要确保孩子的布局做设置了android:duplicateParentState属性(并且不要调用setDuplicateParentState(true)),否则当系统检测到循环依赖关系时,您将在运行时收到异常。

+0

你会如何做相反:接触容器,当触发孩子的选择? –

+0

@androiddeveloper - 你可以在孩子中使用'android:duplicateParentState'。然后,孩子将使用其父母可绘制状态而不是自己的状态。然后父母必须是可点击的,可选择的,或任何你需要孩子的东西。 –

+0

我明白了。是否可以将选择器设置在顶部?另外,是否有不同的解决方案listView项目(其中每个项目是一个布局与我写在这里的视图)? –