setActive向下传播布局层次结构

时间:2014-07-28 15:18:09

标签: android android-layout

我有一个像

这样的视图层次结构
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标志。我的图像持有者从父级获取状态,在不应该的情况下激活图像。

除了将状态持有者更改为适配器/侦听器中的某个位置之外,是否存在导致此行为的标记问题?

1 个答案:

答案 0 :(得分:0)

您似乎对setActive()setActivated()感到困惑。它们各自的属性为android:state_activeandroid:state_activated