【发布时间】:2012-06-25 15:58:45
【问题描述】:
我正在尝试更改 TabWidget 文本颜色,但没有成功,尽管我尝试了不同的方法来更改它(请参阅下面的代码。)
我的背景标签是一张图片:
for (int i = 0; i < tabHost.getTabWidget().getTabCount(); i++) {
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.TRANSPARENT);
}
我不知道这是否会与我现在想做的事情产生某种冲突。
解决方案 1:
main.xml
....
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/tabbarbackground"
android:tabStripEnabled="false"
style="@style/TabText"
/> ....
style.xml
... <style name="TabText">
<item name="android:textColor">@color/tab_text_color</item> </style> ....
tab_text_color.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:textColor="#2daed9" />
<item android:state_selected="false" android:color="#FFFFFF" />
</selector>
解决方案 2
for (int i = 0; i < tabHost.getTabWidget().getTabCount(); i++) {
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.TRANSPARENT);
RelativeLayout rl = (RelativeLayout) tabHost.getTabWidget().getChildAt(i);
TextView textView = (TextView) rl.getChildAt(1);
textView.setTextColor(R.color.tab_text_color);
}
tab_text_color.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:textColor="#2daed9" />
<item android:state_selected="false" android:color="#FFFFFF" /> </selector>
但两种解决方案都不起作用。
但是,如果我更改第二个解决方案
textView.setTextColor (R.color.tab_text_color);
到
textView.setTextColor (Color.parseColor ("# ...."));
它可以工作,除了当我点击它时这个解决方案不会改变文本的颜色。
谢谢。
【问题讨论】:
-
请参阅此处了解如何更改文本颜色的更好解决方案。 stackoverflow.com/questions/9982182/…!
标签: android android-tabhost textview android-textattributes