我有一个像
这样的视图层次结构LinealLayout (background holder, own onClickListener)
->LinealLayout (duplicateParentState=true)
-->TextView (color changes with background, duplicateParentState=true)
-->TextView (color changes with background, duplicateParentState=true)
->LinealLayout (image holder, own onClickListener, duplicateParentState=FALSE)
-->ImageView (color INDEPENDENT, duplicateParentState=FALSE)
现在,根布局,每个textview和imageview都有自己的选择器,如
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:color="@android:color/black" android:state_pressed="true" />
<!-- activated -->
<item android:color="@color/activated_clr" android:state_activated="true"/>
<!-- default -->
<item android:color="@color/deactivated_clr" android:state_activated="false"/>
</selector>
我的问题是以编程方式我想在点击根布局后,将其状态更改为setActive以强制选择状态。我的问题是这个状态在层次结构中向下传播,而不是尊重duplicateParentState标志。我的图像持有者从父级获取状态,在不应该的情况下激活图像。
除了将状态持有者更改为适配器/侦听器中的某个位置之外,是否存在导致此行为的标记问题?
答案 0 :(得分:0)
您似乎对setActive()
和setActivated()
感到困惑。它们各自的属性为android:state_active
和android:state_activated
。