更改图标时保留TabWidget中的文本

时间:2015-04-06 00:35:59

标签: android

我有以这种方式设置标签的文字:

TabSpec tabSpecProfile = tabHost.newTabSpec("Profile").setIndicator("Profile", resources.getDrawable(R.drawable.icon_tab_profile))
            .setContent(intentProfile);

此处还有icon_tab_profile.xml代码:

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

我看到图片在选项卡选择上正确更改,但文本消失了。在其他选项卡上可以看到文本以及正确的图标。有关如何保留文本的任何线索?在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我已通过设置正确的样式解决了这个问题,请参阅下面的代码:

<强> styles.xml

<style name="AppTheme" parent="@android:style/Theme.Light">
    <item name="android:tabWidgetStyle">@style/TabWidget</item>
</style>

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

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

创造色彩&#39;文件夹下的&#39; res&#39;并添加此文件,

<强> tab_indicator_text.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_selected="true" android:color="@android:color/white"/>
    <item android:state_selected="false" android:color="@android:color/black"/>

</selector>

您可以根据您的需要更改颜色,只需为demo设置

希望这会有所帮助。