如何更改android中选项卡指示器文本的颜色?

发布于 2024-09-01 03:58:58 字数 163 浏览 9 评论 0原文

如何更改选项卡文本指示器的颜色?我可以使用参考示例的选择器标签更改图标。但不能改变文字颜色。如何?

how to change the color of the text indicator of tab? i can change the icon using selector tag refered the example. but cant to the text color. how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

瑕疵 2024-09-08 03:59:04

颜色的变化也可以在不使用 java 的情况下表示 - 这可能更好。

我对 text_tab_indicator 进行了更改(注意 textColor 已更改为“颜色”):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:color="@color/text_tab_selected" />
    <item android:state_selected="false" android:color="@color/text_tab_unselected" />
</selector>

将 TabWidget 的样式设置为指向 xml 代码中的特定样式:

<TabWidget
    ...
    style="@style/TabText"
    />

将位于 /res/color 中的 text_tab_indicator 声明为您想要的样式颜色

<style name="TabText">
    <item name="android:textColor">@color/tab_text_color</item>
</style>

它就像一个魅力(对我来说)。

干杯,
兰德尔

The change in color can also be stated without using java - which is probably better.

I made changes to the text_tab_indicator (notice textColor was changed to 'color'):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:color="@color/text_tab_selected" />
    <item android:state_selected="false" android:color="@color/text_tab_unselected" />
</selector>

Set the style of the TabWidget to point to a specific style in your xml code:

<TabWidget
    ...
    style="@style/TabText"
    />

Declare your text_tab_indicator located in /res/color as you desired color in the style

<style name="TabText">
    <item name="android:textColor">@color/tab_text_color</item>
</style>

It worked like a charm (for me).

Cheers,
Randall

一绘本一梦想 2024-09-08 03:59:03

Danny C的答案是100%正确的。我只是想添加一些东西来用资源文件做出完整的答案。

res/color 文件下的text_tab_indicator

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:textColor="@color/text_tab_selected"
    android:state_selected="true" />
<item android:textColor="@color/text_tab_unselected"
    android:state_selected="false" />
</selector>

以及这个text_tab_unselected & text_tab_selected 在颜色/值文件夹下看起来像这样

<resources> 
<color name="text_tab_selected">#ffffff</color>
<color name="text_tab_unselected">#95ab45</color>

最后在选项卡类文件中添加 Dannyy 的答案

final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);        
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));

Danny C's answer is 100% correct.I just wanted to add something to it to make a complete answer with resource file.

The text_tab_indicator under res/color file

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:textColor="@color/text_tab_selected"
    android:state_selected="true" />
<item android:textColor="@color/text_tab_unselected"
    android:state_selected="false" />
</selector>

And this text_tab_unselected & text_tab_selected will look like this under colors/values folder

<resources> 
<color name="text_tab_selected">#ffffff</color>
<color name="text_tab_unselected">#95ab45</color>

After that finally add Dannyy's answer in tab class file

final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);        
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));
蔚蓝源自深海 2024-09-08 03:59:02

风格它
在您的自定义主题更改中

<item name="android:tabWidgetStyle">@android:style/Widget.TabWidget</item> 

<style name="Widget.TabWidget">
        <item name="android:textAppearance">@style/TextAppearance.Widget.TabWidget</item>
        <item name="android:ellipsize">marquee</item>
        <item name="android:singleLine">true</item>
</style>  


<style name="TextAppearance.Widget.TabWidget">
    <item name="android:textSize">14sp</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textColor">@android:color/tab_indicator_text</item>
</style>     

Style it
in your custom theme change

<item name="android:tabWidgetStyle">@android:style/Widget.TabWidget</item> 

and

<style name="Widget.TabWidget">
        <item name="android:textAppearance">@style/TextAppearance.Widget.TabWidget</item>
        <item name="android:ellipsize">marquee</item>
        <item name="android:singleLine">true</item>
</style>  


<style name="TextAppearance.Widget.TabWidget">
    <item name="android:textSize">14sp</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textColor">@android:color/tab_indicator_text</item>
</style>     
梦里人 2024-09-08 03:59:01

这是我从 Fred Grott 那里找到的一个新答案(http://knol.google .com/k/fred-grott/advance-tabs/)经过一些网络搜索后。

这可以让您为文本颜色设置一个选择器,以便在选择或不选择选项卡时可以使用不同的颜色。如果您选择选项卡使用不同的背景颜色,这将非常有用。当然,您也可以只添加纯色而不添加选择器。

final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);        
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));

其中 R.color.text_tab_indicator 是 选择器 xml 文件位于您的 res/drawable 文件夹中。

换句话说,指示符文本实际上是一个 TextView,可通过 View 对象检索,该对象可从 TabWidget 对象访问。

查看 Fred 的示例,了解有关变量声明以及其他技巧的更多信息和上下文。

Here is a new answer I found from Fred Grott (http://knol.google.com/k/fred-grott/advance-tabs/) after a little web searching.

This lets you set a selector for text color so a different color can be used when tab is selected or not. Which can be very useful if you are using a different background color for the tab if its selected. Of course you can also just throw in a plain color and not a selector.

final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);        
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));

Where R.color.text_tab_indicator is a selector xml file located in your res/drawable folder.

In other words, the indicator text really is a TextView which is retrievable via the View object which can be accessed from the TabWidget object.

Take a look at Fred's examples for more info and context regarding the variable declarations as well as other tricks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文