【问题标题】:Cannot set background color of the selected tab programmatically in ViewPager无法在 ViewPager 中以编程方式设置所选选项卡的背景颜色
【发布时间】:2017-10-23 20:30:58
【问题描述】:

我想在ViewPager中通过代码设置选中TAB的BackgroundColor。

到目前为止,我所做的是:-

tabs.setSelectedTabIndicatorColor(Color.parseColor("#92278F"));
tabs.setSelectedTabIndicatorHeight(50);
tabs.setTabTextColors(Color.parseColor("#FFFFFF"), Color.parseColor("#FFFFFF"));

但我做不到。

如果所选颜色为红色,则选项卡应在所选选项卡的颜色中反映为红色,白色为所选文本颜色。 我可以通过 XML 代码做到这一点,但我不知道如何通过代码(动态)实现它

请帮帮我。

【问题讨论】:

  • tabs 是什么?是TabLayout吗?
  • 是的...它是 TabLayout...

标签: android-studio android-fragments android-viewpager android-tabs android-tablayout


【解决方案1】:

这就是它的样子—— Image1 Image2

代码如下:

为背景、选定和未选定状态制作 3 个可绘制文件-

tab_background.xml

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

tab_background_selected.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#87CEFA" />
</shape>

tab_background_unselected.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#3F51B5" />
</shape>

然后最后在styles.xml中添加tablayout样式

<style name="Base.Widget.Design.TabLayout" parent="android:Widget">
    <item name="tabBackground">@drawable/tab_background</item>
    <item name="tabIndicatorColor">#ff00ff</item>
    <item name="tabIndicatorHeight">2dp</item>
</style>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    相关资源
    最近更新 更多