android:duplicateParentState="true"在代码和XML设置效果的差异

参考:点击打开链接 测试了下发现在xml文件和java代码中设置共享父类状态产生的效果不同。。

只有当view 为no  clickable时,例如textview,linearlayout 点击父控件时,view会使用父控件的状态。

1.子View LinearLayout, android:state_pressed="true" 颜色变为红色。

2.点击父控件,该view背景变为红色。

3监听该view的onClickListner事件

监听父控件,背景不会变为红色,因为此时该view已经变为clickable.所以不能使用父控件的状态。

要想让其使用父控件状态,在xml中

android:duplicateParentState="true"

但在代码中设置却不起效果。疑问??????

发现点:

1.clickable的view 默认不能共享使用父view的状态,若要使其共享,xml中添加上述代码。

2.no  clickable的控件默认就能共享父view的状态。若要使其不共享,使其变为clickable,例如setOnClickListener或android:clickable="true" 

你可能感兴趣的:(android:duplicateParentState="true"在代码和XML设置效果的差异)