如何在Android ViewPager中更改当前选项卡的高亮颜色?

25
这是我的布局,它在 ViewPager 中。我想改变当前选项卡下方高亮显示器的颜色。实际上它显示为黑色。但我不知道这是否是默认颜色。另外,我还有一个疑问。如果我使用 PagerTitleStrip,这个选项卡高亮显示器就不会出现。有办法将其与标题条一起使用吗?
  <android.support.v4.view.PagerTabStrip android:id="@+id/pager_title_strip"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:background="@color/pager_titlestrip_bg"    
    android:textColor="@color/pager_titlestrip_text"
    android:paddingTop="5dp"
    android:paddingBottom="4dp" >   
  </android.support.v4.view.PagerTabStrip>

我研究了JakeWharton的ViewPager Indicator解决方案。对于我来说,选项卡和滑动都很好用。但我想改变标签指示器的颜色。有更改选项卡文本颜色的选项。但没有更改指示器颜色的选项。默认情况下显示为黑色。 - intrepidkarthi
3个回答

63

这非常有效。

PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.pager_title_strip);
pagerTabStrip.setDrawFullUnderline(true);
pagerTabStrip.setTabIndicatorColor(Color.RED);

谢谢!


XML怎么样? - TheRealChx101

13

这可以通过Java编程或XML两种方式完成

使用XML

<android.support.design.widget.TabLayout
        android:id="@+id/tabanim_tabs"
        android:layout_width="match_parent"
        app:tabIndicatorHeight="4dp"
        app:tabIndicatorColor="@android:color/white"
        android:layout_height="wrap_content" />

或者更简单地说,您也可以解决这段代码

tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#FFFFFF"));

同样地,改变高度

tabLayout.setSelectedTabIndicatorHeight((int) (2 * getResources().getDisplayMetrics().density));

1
这在我的项目中有效。
<android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#FFF"
    app:tabGravity="fill"
    app:tabIndicatorColor="@color/text3"
    app:tabMode="scrollable"
    app:tabSelectedTextColor="@color/text3"
    app:tabTextColor="#000" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接