Android的更改标签文本颜色 [英] Android Changing Tab Text Color

查看:150
本文介绍了Android的更改标签文本颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过我的style.xml这样设置的Andr​​oid标签文本颜色:

 <资源的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android><! - 应用的主题。 - >
<样式名称=AppTheme父=AppBaseTheme>
    <! - 所有自定义不特定于一个特定的API级别的可以去这里。 - >
    <项目名称=机器人:actionBarStyle> @风格/ ActionBarStyle< /项目>
< /风格><样式名称=ActionBarStyle父=机器人:风格/ Widget.Holo.Light.ActionBar>
    <项目名称=机器人:背景>#FFFFFF< /项目>
    <项目名称=机器人:titleTextStyle> @风格/ myTheme.ActionBar.Text< /项目>
    <项目名称=机器人:文字样式>大胆< /项目>
    <项目名称=机器人:TEXTSIZE>&16SP LT; /项目>
< /风格><样式名称=myTheme.ActionBar.Text父=@安卓风格/ TextAppearance>
    <项目名称=机器人:文字颜色>#000000< /项目>
< /风格>

和我的寻呼机查看这样:

 < android.support.v4.view.ViewPager
的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:ID =@ + ID /寻呼机
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:文字颜色=#000000/>

然而,与这些codeS,我只设法视图寻呼机选项卡背景色改为白色,但文字白色为好。我不知道为什么,我设置文本​​颜色为操作栏中的部分不工作。

先谢谢了。

修改

在哪里设置我的看法寻呼机部分:

 公共类EventDetailMain扩展FragmentActivity {
上下文的背景下=这;ViewPager标签;
EventDtlTabPagerAdapter TabAdapter;
动作条动作条;@覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.event_detail_main);
    TabAdapter =新EventDtlTabPagerAdapter(getSupportFragmentManager());
    片=(ViewPager)findViewById(R.id.pager);
    Tab.setOnPageChangeListener(新ViewPager.SimpleOnPageChangeListener(){
        @覆盖
        公共无效使用onPageSelected(INT位置){
            动作条= getActionBar();
            actionBar.setSelectedNavigationItem(位置);
        }
    });
    Tab.setAdapter(TabAdapter);
    动作条= getActionBar();
    //启用操作栏标签
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    ActionBar.TabListener tabListener =新ActionBar.TabListener(){
        公共无效onTabReselected(android.app.ActionBar.Tab选项卡,
                android.app.FragmentTransaction英尺){
        }        公共无效onTabSelected(android.app.ActionBar.Tab选项卡,
                android.app.FragmentTransaction英尺){
            //在选项卡中选择节目推崇片段视图
            Tab.setCurrentItem(tab.getPosition());
        }        公共无效onTabUnselected(android.app.ActionBar.Tab选项卡,
                android.app.FragmentTransaction英尺){
        }
    };    //添加新标签
    actionBar.addTab(actionBar.newTab()的setText(事件详细信息)
            .setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab()的setText(聊天室)
            .setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab()的setText(落评论)
            .setTabListener(tabListener));
}


解决方案

OK尝试一下文档(的 http://developer.android.com/guide/topics/ui/actionbar.html ):

 <?XML版本=1.0编码=UTF-8&GT?;
<资源>
&所述;! - 应用于应用程序或活动的主题 - >
<样式名称=CustomActionBarTheme
       父=@风格/ Theme.AppCompat.Light>
    <项目名称=机器人:actionBarStyle> @风格/ MyActionBar< /项目>
<! - 重要的是你 - >
    <项目名称=机器人:actionBarTabTextStyle> @风格/ TabTextStyle< /项目>    <项目名称=机器人:actionMenuTextColor> @彩色/ actionbar_text< /项目>    <! - 支持库的兼容性 - >
    <项目名称=actionBarStyle> @风格/ MyActionBar< /项目>
    <项目名称=actionBarTabTextStyle> @风格/ TabTextStyle< /项目>
    <项目名称=actionMenuTextColor> @彩色/ actionbar_text< /项目>
< /风格><! - 普通样式的操作栏 - >
<样式名称=MyActionBar
       父=@风格/ Widget.AppCompat.ActionBar>
    <项目名称=机器人:titleTextStyle> @风格/ TitleTextStyle< /项目>
    <项目名称=机器人:背景> @绘制/ actionbar_background< /项目>
    <项目名称=机器人:backgroundStacked> @绘制/ actionbar_background< /项目>
    <项目名称=机器人:backgroundSplit> @绘制/ actionbar_background< /项目>    <! - 支持库的兼容性 - >
    <项目名称=titleTextStyle> @风格/ TitleTextStyle< /项目>
    <项目名称=背景> @绘制/ actionbar_background< /项目>
    <项目名称=backgroundStacked> @绘制/ actionbar_background< /项目>
    <项目名称=backgroundSplit> @绘制/ actionbar_background< /项目>
< /风格><! - 行动起来吧标题文字 - >
<样式名称=TitleTextStyle
       父=@风格/ TextAppearance.AppCompat.Widget.ActionBar.Title>
    <项目名称=机器人:文字颜色> @彩色/ actionbar_text< /项目>
< /风格><! - 行动起来吧标签文本重要的是你 - >
<样式名称=TabTextStyle
       父=@风格/ Widget.AppCompat.ActionBar.TabText>
    <项目名称=机器人:文字颜色> @彩色/ actionbar_text< /项目>
< /风格>

I am trying to set Android tab text color by doing this in my style.xml:

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

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    <item name="android:actionBarStyle">@style/ActionBarStyle</item>
</style>

<style name="ActionBarStyle" parent="android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">#FFFFFF</item>
    <item name="android:titleTextStyle">@style/myTheme.ActionBar.Text</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textSize">16sp</item>
</style>

<style name="myTheme.ActionBar.Text" parent="@android:style/TextAppearance">
    <item name="android:textColor">#000000</item>
</style>

And my View pager as such:

<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:textColor="#000000"/>

However, with these codes, I only managed to change the view pager tab background color to white but text as white color as well. I wonder why the part where I set text color for action bar does not work.

Thanks in advance.

EDIT

And the part where I set my view pager:

public class EventDetailMain extends FragmentActivity {
Context context = this;

ViewPager Tab;
EventDtlTabPagerAdapter TabAdapter;
ActionBar actionBar;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.event_detail_main);
    TabAdapter = new EventDtlTabPagerAdapter(getSupportFragmentManager());
    Tab = (ViewPager) findViewById(R.id.pager);
    Tab.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            actionBar = getActionBar();
            actionBar.setSelectedNavigationItem(position);
        }
    });
    Tab.setAdapter(TabAdapter);
    actionBar = getActionBar();
    // Enable Tabs on Action Bar
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    ActionBar.TabListener tabListener = new ActionBar.TabListener() {
        public void onTabReselected(android.app.ActionBar.Tab tab,
                android.app.FragmentTransaction ft) {
        }

        public void onTabSelected(android.app.ActionBar.Tab tab,
                android.app.FragmentTransaction ft) {
            // on tab selected show respected fragment view
            Tab.setCurrentItem(tab.getPosition());
        }

        public void onTabUnselected(android.app.ActionBar.Tab tab,
                android.app.FragmentTransaction ft) {
        }
    };

    // Add New Tab
    actionBar.addTab(actionBar.newTab().setText("Event Detail")
            .setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab().setText("Chat Room")
            .setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab().setText("Drop Review")
            .setTabListener(tabListener));
}

解决方案

OK Try look at docs (http://developer.android.com/guide/topics/ui/actionbar.html):

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
       parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
<!--IMPORTANT FOR YOU -->
    <item name="android:actionBarTabTextStyle">@style/TabTextStyle</item> 

    <item name="android:actionMenuTextColor">@color/actionbar_text</item>

    <!-- Support library compatibility -->
    <item name="actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarTabTextStyle">@style/TabTextStyle</item>
    <item name="actionMenuTextColor">@color/actionbar_text</item>
</style>

<!-- general styles for the action bar -->
<style name="MyActionBar"
       parent="@style/Widget.AppCompat.ActionBar">
    <item name="android:titleTextStyle">@style/TitleTextStyle</item>
    <item name="android:background">@drawable/actionbar_background</item>
    <item name="android:backgroundStacked">@drawable/actionbar_background</item>
    <item name="android:backgroundSplit">@drawable/actionbar_background</item>

    <!-- Support library compatibility -->
    <item name="titleTextStyle">@style/TitleTextStyle</item>
    <item name="background">@drawable/actionbar_background</item>
    <item name="backgroundStacked">@drawable/actionbar_background</item>
    <item name="backgroundSplit">@drawable/actionbar_background</item>
</style>

<!-- action bar title text  -->
<style name="TitleTextStyle"
       parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/actionbar_text</item>
</style>

<!-- action bar tab text IMPORTANT FOR YOU -->
<style name="TabTextStyle"
       parent="@style/Widget.AppCompat.ActionBar.TabText">
    <item name="android:textColor">@color/actionbar_text</item>
</style>

这篇关于Android的更改标签文本颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆