选择器背景drawable改变父母的颜色

时间:2014-04-10 17:27:50

标签: android android-layout

我想实现一个效果,其中一个TextView的背景在点击时发生变化。我通过下面的绘图实现了这一点,状态被按下了。我遇到了一个奇怪的情况,如果我按下文本视图,拖离它,然后释放我的手指,容器背景变为灰色但TextView背景为白色。

不知何故,可绘制效果正在转移到父级并导致这种奇怪的行为。点击其他区域会导致父背景改变颜色(它应始终保持白色)。此外,此布局是ListView的标头。

<LinearLayout
    android:id="@+id/1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <LinearLayout
        android:id="@+id/2"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@drawable/onclick_effect">

        <TextView 
            android:id="@+id/3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/myPublicProfile"/>

        <TextView 
            android:id="@+id/4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

    </LinearLayout>

    <TextView 
        android:id="@+id/5"
        android:layout_width="@dimen/dprEightyFive"
        android:background="@drawable/onclick_effect"
        android:layout_height="match_parent"
        android:gravity="start|center_vertical"/>

</LinearLayout>

抽拉/ onclick_effect

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_pressed="true">
         <color android:color="@color/grey_subtle" /> <!-- pressed -->
    </item>
    <item>
         <color android:color="@color/White"/> 
     </item><!-- default -->
</selector>

1 个答案:

答案 0 :(得分:0)

在xml中你可以尝试

android:duplicateParentState="true"