如何更改所选标签的颜色

选中时如何更改选项卡的颜色,请参阅下面的屏幕截图:

我在ActionBar中显示橙色,以同样的方式,我想显示橙色代替浅蓝色。

要在ActionBar背景中显示橙色,我使用下面的代码:

<?xml version="1.0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="Theme.MyAppTheme" parent="android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item> </style> <style name="Theme.MyAppTheme.ActionBar" parent="android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">#FF4444</item> </style> </resources> 

Solutions Collecting From Web of "如何更改所选标签的颜色"

我真的build议你使用Actionbar Style Generator 。

使用该工具,您可以轻松地在您的工具栏中呈现graphics元素。

把这个函数调用到你的Activity并把tabhost作为parameter passing

 public static void setTabColor(TabHost tabhost) { for (int i = 0; i < tabhost.getTabWidget().getChildCount(); i++) { tabhost.getTabWidget().getChildAt(i) .setBackgroundResource(R.drawable.header_blank); // unselected } tabhost.getTabWidget().setCurrentTab(0); tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab()) .setBackgroundResource(R.drawable.tab_selected_new); // selected // //have // to // change } 

以下面的方式来调用它

  setTabColor(tabHost); tabHost.setOnTabChangedListener(new OnTabChangeListener() { @Override public void onTabChanged(String arg0) { setTabColor(tabHost); } }); 

希望这对你有用

按照下面的样式定制自定义主题

 <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> 

或者你可以使用下面的代码。

  tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.RED); 

要么

  tabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.parseColor("#4E4E9C")); 

希望它可以帮助你。

 myTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener(){ @Override public void onTabChanged(String tabId) { int tab = myTabHost.getCurrentTab(); View view = myTabHost.getTabWidget().getChildAt(tab).setBackgroundColor(Color.CYAN); } }); 

要更改标签栏背景:

 actionBar.setStackedBackgroundDrawable(new ColorDrawable(yourOwnColor)); 

创build一个select器文件,其中包含您的愿望颜色适用于选项卡xml如下所示:

  <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (c) Josh Clemm 2010 --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Active tab --> <item android:state_selected="true" android:state_focused="false" android:state_pressed="false" android:drawable="@drawable/dm_tab_highlight" /> <!-- Inactive tab --> <!-- <item android:state_selected="false" android:state_focused="false" --> <!-- android:state_pressed="false" android:drawable="@drawable/tabbarbg" /> --> <!-- Pressed tab --> <item android:state_pressed="true" android:drawable="@drawable/dm_tab_highlight" /> </selector> 

你可以这样使用

tab_background_select.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/tab_background" />// for selected <item android:drawable="@drawable/tab" /> // for normal </selector> 

你可以使用这个代码并设置你的item_tab xml文件的背景

tab_selection.xml

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

您可以使用此代码并设置图标阿尔法,它看起来像一个被选中,其他都被禁用。

 viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position) { case 0: tabLayoutUserProfileTabs.getTabAt(0).getIcon().setAlpha(255); tabLayoutUserProfileTabs.getTabAt(1).getIcon().setAlpha(128); tabLayoutUserProfileTabs.getTabAt(2).getIcon().setAlpha(128); tabLayoutUserProfileTabs.getTabAt(3).getIcon().setAlpha(128); break; case 1: tabLayoutUserProfileTabs.getTabAt(0).getIcon().setAlpha(128); tabLayoutUserProfileTabs.getTabAt(1).getIcon().setAlpha(255); tabLayoutUserProfileTabs.getTabAt(2).getIcon().setAlpha(128); tabLayoutUserProfileTabs.getTabAt(3).getIcon().setAlpha(128); break; case 2: tabLayoutUserProfileTabs.getTabAt(0).getIcon().setAlpha(128); tabLayoutUserProfileTabs.getTabAt(1).getIcon().setAlpha(128); tabLayoutUserProfileTabs.getTabAt(2).getIcon().setAlpha(255); tabLayoutUserProfileTabs.getTabAt(3).getIcon().setAlpha(128); break; case 3: tabLayoutUserProfileTabs.getTabAt(0).getIcon().setAlpha(128); tabLayoutUserProfileTabs.getTabAt(1).getIcon().setAlpha(128); tabLayoutUserProfileTabs.getTabAt(2).getIcon().setAlpha(128); tabLayoutUserProfileTabs.getTabAt(3).getIcon().setAlpha(255); break; } } @Override public void onPageScrollStateChanged(int state) { } }); 

只需在标签布局中添加以下2个属性即可。

 app:tabSelectedTextColor="@color/color_primary_text" app:tabTextColor="@color/color_secondary_text" 

xml中的整个tablayout如下所示

 <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentStart="true" android:layout_gravity="bottom" android:background="@color/button_background" android:fillViewport="true" app:tabBackground="@drawable/fixed_bottom_button" app:tabIndicatorColor="@color/color_primary_text" app:tabMode="fixed" app:tabSelectedTextColor="@color/color_primary_text" app:tabTextColor="@color/color_secondary_text" />