操作栏选项卡指示器不应用自定义样式

时间:2015-03-27 06:33:27

标签: android android-viewpager android-appcompat android-tabs

我有一个带有操作栏标签的viewpager有这个问题,基本上我无法将任何自定义样式应用到标签,这就是我所拥有的

enter image description here

好的,所以这是使用android studio 1.1附带的默认选项卡式活动,这里有一个我已经拥有的特性列表

  • 默认模板使用appCompat v4 viewpager with fragments
  • 我有一个从http://jgilfelt.github.io/android-actionbarstylegenerator/生成的自定义样式,我知道已弃用但现在仍然可以使用
  • 下面是我活动代码的代码部分
  • min sdk设置为21
  • 正在使用buildtools 21.2.1
  • 和支持库v4修订版22.0

MainActivity

    public class MainActivity extends ActionBarActivity implements ActionBar.TabListener {

    SectionsPagerAdapter mSectionsPagerAdapter;

    ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final ActionBar actionBar = getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mSectionsPagerAdapter);

        mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                actionBar.setSelectedNavigationItem(position);
            }
        });

        for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
            actionBar.addTab(
                    actionBar.newTab()

activity_main.xml中

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

我在styles.xml中有自定义样式,并且已将它们应用于清单

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.CustomTheme" >

这是我的风格的一小部分,我知道正试图改变为红色指示符

<style name="ActionBarTabStyle.Aeroman" parent="@style/Widget.AppCompat.ActionBar.TabView">
        <item name="android:background">@drawable/tab_indicator_ab_customTheme</item>
    </style>

使用红色指示灯

所有看起来都不错,但正如你在屏幕截图中看到的那样,juts忽略了这些样式,我知道样式文件中的一些样式已被应用,因为例如我有一个Theme.AppCompat.Light.DarkActionBar as如果我将它更改为Theme.AppCompat.Light,则actionBar变为灰色,因此正在处理该部分,对我而言,奇怪的是标签指示器是绿色的,我认为它应该是蓝色的吗?并且在默认情况下非常薄。

我在genymotion模拟器中使用Nexus 4和API 16进行了测试,在使用Nexus 5和Android 5.0.1的真实设备中进行了测试

请帮助理解这一点,我把头发拉到这里,谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

使用不带android:前缀的appcompat属性名称,即:

        <item name="actionBarTabStyle">@style/ActionBarTabStyle.YourProject</item>