raf*_*uru 44 android android-widget
我正在尝试使用TextView在tabhost上定义TabWidget的样式.
我刚刚为bgcolor创建了一个选择器并且工作正常,但我想为textColor创建一个选择器,但文本颜色不会改变:
这是我的tab_text_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_selected="true" android:color="@android:color/white" />
<item android:state_focused="true" android:color="@android:color/white" />
<item android:state_pressed="true" android:color="@android:color/white" />
</selector>
Run Code Online (Sandbox Code Playgroud)
当我尝试在textView上使用时,这是代码:
TextView txtTab=new TextView(this);
txtTab.setTextColor(R.drawable.tab_text_selector);
txtTab.setBackgroundResource(R.drawable.tab_bg_selector);
txtTab.setGravity(Gravity.CENTER);
txtTab.setText("Agregar Idea");
Run Code Online (Sandbox Code Playgroud)
我知道文本颜色在任何情况下都必须是白色,但事实并非如此.
Sag*_*hah 88
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@android:color/white" />
<item android:state_focused="true" android:color="@android:color/white" />
<item android:state_pressed="true" android:color="@android:color/white" />
<item android:color="#504f4f" /> <!-- default case -->
</selector>
Run Code Online (Sandbox Code Playgroud)
并将其设置为您的textview,如下所示..
TextView tv = (TextView) findViewById(R.id.TextView1) ;
tv.setTextColor(context.getResources().getColor(R.color.tab_text_selector));
Run Code Online (Sandbox Code Playgroud)
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="TextView"
android:textColor="@??drawable/tab_text_sel??ector" />
Run Code Online (Sandbox Code Playgroud)
ffl*_*dro 52
你必须使用getColorStateList().对于xml,请参阅此处.
我也在努力解决这个问题.如果要使用a state list,则需要在colorresources文件夹而不是文件夹中声明它drawable,并使用该setTextColor(getResources().getColorStateList(R.color.tab_text_selector))方法.
ρяσ*_*я K 29
使用这种方式:
tab_text_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="#FF111111"/>
<item android:state_focused="true" android:color="#FF222222"/>
<item android:state_selected="true" android:color="#FF333333"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
TextView的:
TextView txtTab = new TextView(this);
XmlResourceParser xrp = getResources().getXml(R.drawable.tab_text_selector);
try {
ColorStateList csl = ColorStateList.createFromXml(getResources(), xrp);
txtTab.setTextColor(csl);
} catch (Exception e) { }
txtTab.setBackgroundResource(R.drawable.tab_bg_selector);
txtTab.setGravity(Gravity.CENTER);
txtTab.setText("Agregar Idea");
Run Code Online (Sandbox Code Playgroud)
但是把颜色放进去更好 /res/color/yourcolor.xml
小智 11
只需为文本颜色制作选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/drawer_color" />
<item android:state_focused="false" android:color="@android:color/white" />
<item android:state_selected="true" android:color="@color/drawer_color" />
Run Code Online (Sandbox Code Playgroud)
然后设置Textview的textColor属性,设置clickable = true
<TextView
android:clickable="true"
android:textColor="@drawable/text_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/registration"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
Run Code Online (Sandbox Code Playgroud)
@ ffleandro,@ρяσѕρєяK答案最好的变种,我认为使用ColorStateList最佳选择Android的旧版本和最新版本.
int[][] states = new int[][] {
new int[] { android.R.attr.state_pressed}, // pressed
new int[] { android.R.attr.state_focused}, // focused
new int[] {}
};
int[] colors = new int[] {
getResources().getColor(R.color.green_color), // green
getResources().getColor(R.color.green_color), // green
getResources().getColor(R.color.white) // white
};
ColorStateList list = new ColorStateList(states, colors);
mTextView.setFocusable(true);
mTextView.setClickable(true);
mTextView.setTextColor(list);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77335 次 |
| 最近记录: |