自定义主题选项卡布局

时间:2018-10-20 13:18:16

标签: android styles themes

我想将自定义主题应用于我的标签布局,但是我无法使其正常工作,我有几个规定:

  1. 它不能是编程的,我希望能够在活动或片段的开始时调用setTheme,而不必做任何其他工作

  2. 主题必须在主题中设置并且可以更改,因为我有6个主题,其中有些是浅色的,有些是深色的

我正在尝试的内容

我一直想做的是在我的styles.xml文件中设置一个主题,然后为我可以以我的主要样式注册的不同小部件(例如,父级同级关系)设置较小的主题,所以这里是我的蓝色主题/样式(父级)

<style name="MyAppBlueTheme" parent="Theme.AppCompat">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/primary_blue</item>
    <item name="colorPrimaryDark">@color/primary_dark_blue</item>
    <item name="colorAccent">@color/accent_blue</item>
    <item name="android:textColor">@color/primary_text_blue</item>
    <item name="android:colorBackground">@color/background_light</item>
    <item name="android:tabWidgetStyle">@style/Blue.TabLayout</item>
</style>

在这里,我将tabWidgetStyle声明为Blue.TabLayout作为一种兄弟姐妹,这就是该标签布局样式(兄弟姐妹)的样子

<style name="Blue.TabLayout" parent="Base.Widget.Design.TabLayout">
    <item name="tabSelectedTextColor">@color/selected_textBlue</item>
    <item name="tabIndicatorColor">@color/accent_blue</item>
    <item name="tabBackground">@color/primary_blue</item>
</style>

这对文本有自己的同级

<style name="CustomTabTexStyleBlue" parent="TextAppearance.Design.Tab">
    <item name="android:textColor">@color/primary_text_blue</item>
</style>

我在活动或片段开始时使用setTheme设置了主题,除了我的选项卡布局看起来透明之外,其他一切看起来都很好,请问任何人可以让我了解这里发生的事情

0 个答案:

没有答案