我需要更改标签指示颜色(见下图):
即使我遵循以下官方教程:https://developer.android.com/training/basics/actionbar/styling.html#CustomTabs我仍然无法使其发挥作用。
应用程序编译版本是: compileSdkVersion 22
应用程序主题是: Theme.AppCompat.Light.DarkActionBar
... res / values / styles.xml (主题自定义文件)
a = float(float(a)/float(3.0)) # still returns 0
... RES /抽拉/ tab_indicator_ab_example.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorDark</item>
<item name="android:actionBarTabBarStyle">@color/colorPrimary</item>
<item name="android:actionBarTabStyle">@style/ActionBarTabStyle.Example</item>
</style>
<!-- ActionBar tabs styles -->
<style name="ActionBarTabStyle.Example" parent="@style/Widget.AppCompat.Light.ActionBar.TabText">
<item name="android:background">@drawable/tab_indicator_ab_example</item>
</style>
<color name="colorDark">#ff9800</color>
<color name="colorPrimary">#ffc107</color>
<color name="happy">#ffeb3b</color>
<color name="normal">#fff176</color>
<color name="sad">#fff59d</color>
</resources>
无法弄清问题在哪里,一切都编译没有错误,代码按照官方文档逐步进行。 THX。
答案 0 :(得分:2)
你可以轻松尝试这个
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#FFFFFF"));
//Use Color Resource here or directly parse color just like this
答案 1 :(得分:1)
我在某些项目中使用了PagerSliderTabStrip。它易于设置和使用。
gradle文件:
compile 'com.jpardogo.materialtabstrip:library:1.1.0'
layout.xml文件:
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
Activity.java:
// Initialize the ViewPager and set an adapter
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new TestAdapter(getSupportFragmentManager()));
// Bind the tabs to the ViewPager
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(pager);
要更改选择器的颜色,请使用:
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.pstsIndicatorColor(yourColor);
答案 2 :(得分:1)
如果您正在使用SlidingTabLayout类和SlidingTabStrip样式(Something like this),那么您只需调用名为setSelectedIndicatorColors(int... colors)
的SlidingTabLayout类的方法,该参数就是一个数组,但是在数组中你可以只放一种颜色。因此,如果您想从SlidingTabLayout调用该方法,它将类似于:
int[] color = {Color.Pink, Color.Red, Color.Awesome};
//It could be only one color if you want
SlidingTabLayout tabs = (SlidingTabLayout) findViewById(R.id.tabs);
tabs.setSelectedIndicatorColors(color);
但是如果你按照上面链接的教程使用他的Tab实现样式,你就可以这样做。
注意:这是实现Material Design内容的推荐和支持方式。在更多Material Design Tuts上,只需谷歌关键字“Material Design Tab Tutorial Example”
答案 3 :(得分:1)
您可以使用以下代码更改标签指示符颜色:
tabs = setCustomTabColorizer(new SlidingTabLayout.TabColorizer(){
@override
public int getIndicatorColor(int position)
return getResources().getColor(R.color.colorAccent);
}
)};
查看此示例教程:https://www.youtube.com/watch?v=WSaSNX5QI-E&index=27&list=PLonJJ3BVjZW6CtAMbJz1XD8ELUs1KXaTD
答案 4 :(得分:0)
为了避免所有复杂性,我建议使用PagerSlidingTabStrip
因为它非常易于使用并且还有很多自定义功能。通过这种方式,您可以像在Google Play应用中一样创建滑动标签。