我希望我的TextView在按下时使用不同的颜色背景进行绘制。下面的xml包含一个Button和TextView,它们都指定一个Selector作为背景。 Button按预期工作,但TextView在按下时不会改变颜色。有没有办法使这个工作为TextView?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:text="temporary text view"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:background="@drawable/blackselector"
/>
<Button
android:text="temporary button"
android:layout_width="wrap_content"
android:layout_height="100dip"
android:background="@drawable/blackselector"
/>
</LinearLayout>
selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<color android:color="#FF0000" />
</item>
<item>
<color android:color="#00FF00" />
</item>
</selector>
答案 0 :(得分:9)
添加
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
答案 1 :(得分:4)
以上关于将clickable设置为true的说法是正确的。此外,如果您自动添加onClickListener Android设置,可以自动点击为true。
// From the View class.
public void setOnClickListener(OnClickListener l) {
if (!isClickable()) {
setClickable(true);
}
getListenerInfo().mOnClickListener = l;
}