【发布时间】:2014-04-10 17:27:49
【问题描述】:
我想实现一种效果,即我的一个 TextViews 的背景在点击时发生变化。我通过下面的drawable实现了这一点,状态被按下。我遇到了一个奇怪的场景,如果我按下 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>
可绘制/点击效果
<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>
【问题讨论】:
-
尝试为 textview id 5 更改 android:layout_height="wrap_content"
-
不,还是一样。