我有LinearLayout与textView。
我已经从选择器
设置了LinearLayout背景android:background="@drawable/tab_bg_selector"
所以当按布局时它改变了背景颜色
我的问题是如何改变文本的颜色也当按布局
我需要像onStateChangeListner这样的东西,这样当用户按布局时它也会改变文本颜色
谢谢,
。托马
如何将shape's child TextView设置为白色这几乎就是正确答案。duplicateParentState="true"将父ListView选择状态转移到子TextView。下面的方法对我有用:
<TextView
android:duplicateParentState="true"
android:textColor="@drawable/text_selector"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
和text_selector:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="@color/text_on" /> <!-- pressed -->
<item android:state_focused="true"
android:color="@color/text_on" /> <!-- focused -->
<item android:color="@color/text_off" /> <!-- default -->
</selector>
把这个放到onClick of Layout
textview.setTextColor(颜色);
试试下面的代码-
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void clickme(View view)
{
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setTextColor(Color.RED);
}
main。xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:onClick="clickme"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
可以通过两种方式设置textview的颜色使用XML标签"android:textcolor="colorvalue"或通过java代码中的方法"textview object.setTextColor(colorname)"来设置颜色
因为只有一个解决方案首先用文字颜色创建两个不同颜色背景的图片第二个是设置选择器,就像你在上面应用的一样,比如
android:background="@drawable/tab_bg_selector"
绝对有效