gpt4 book ai didi

android - TabWidget 文字颜色不变

转载 作者:太空狗 更新时间:2023-10-29 15:39:05 25 4
gpt4 key购买 nike

我正在尝试更改 TabWidget 文本颜色,但没有成功,尽管我尝试了不同的方式来更改它(请参阅下面的代码。)

我的背景标签是一张图片:

for (int i = 0; i < tabHost.getTabWidget().getTabCount(); i++) {
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.TRANSPARENT);
}

我不知道这是否会与我现在想做的事情产生某种冲突。

方案一:

主.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"
/> ....

样式.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>

方案二

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 ("# ....")); 

它的工作原理,除了这个解决方案在我点击它时不会改变文本的颜色。

谢谢。

最佳答案

我能够解决,该解决方案并不优雅但有效。我希望谁对某人有用:

首先,我必须为所有选项卡的 TextView 设置初始颜色:

for (int i = 0; i < tabHost.getTabWidget().getTabCount(); i++) {
vg = (ViewGroup) getTabHost().getTabWidget().getChildAt(i);
tv = (TextView) vg.getChildAt(1);
tv.setTypeface(font);
if (i == 0) {
tv.setTextColor(Color.parseColor("#2daed9"));
Currentab = 0;
} else {
tv.setTextColor(R.color.GrisOscuro);
}
}

然后,我在覆盖方法 ontabchanged 中设置了每个选项卡的更改颜色。跳动的选项卡是 i (getTabHost().getCurrentTab())。我按的最后一个标签是 Currentab。

getTabHost().setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String tabId) {
int i = getTabHost().getCurrentTab();
if (Currentab != i) {
vg = (ViewGroup) getTabHost().getTabWidget()
.getChildAt(Currentab);
tv = (TextView) vg.getChildAt(1);
tv.setTextColor(R.color.GrisOscuro);

Currentab = i;
vg = (ViewGroup) getTabHost().getTabWidget()
.getChildAt(i);
tv = (TextView) vg.getChildAt(1);
tv.setTextColor(Color.parseColor("#2daed9"));
}
}
});

对不起我的英语,我希望对某人有用 =) 再见! ;D

关于android - TabWidget 文字颜色不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11192863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com