【问题标题】:Combine colors in one theme在一个主题中组合颜色
【发布时间】:2019-11-06 13:42:26
【问题描述】:

我想创建主题父 Theme.MaterialComponents.DayNight.NoActionBarTheme.MaterialComponents.DayNight。但我不想复制其中的颜色,比如

<resources>

<style name="AppTheme.Base" parent="Theme.MaterialComponents.DayNight">

    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryVariant">@color/color_primary_variant</item>
    <item name="colorSecondary">@color/color_secondary</item>
    <item name="colorSecondaryVariant">@color/color_secondary_variant</item>

    <item name="android:colorBackground">@color/color_background</item>
    <item name="colorSurface">@color/color_surface</item>
    <item name="colorError">@color/color_error</item>

    <item name="colorOnPrimary">@color/color_on_primary</item>
    <item name="colorOnSecondary">@color/color_on_secondary</item>
    <item name="colorOnBackground">@color/color_on_background</item>
    <item name="colorOnSurface">@color/color_on_surface</item>
    <item name="colorOnError">@color/color_on_error</item>
</style>

<style name="AppTheme.Base.NoActionBar" parent="Theme.MaterialComponents.DayNight.NoActionBar">

    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryVariant">@color/color_primary_variant</item>
    <item name="colorSecondary">@color/color_secondary</item>
    <item name="colorSecondaryVariant">@color/color_secondary_variant</item>

    <item name="android:colorBackground">@color/color_background</item>
    <item name="colorSurface">@color/color_surface</item>
    <item name="colorError">@color/color_error</item>

    <item name="colorOnPrimary">@color/color_on_primary</item>
    <item name="colorOnSecondary">@color/color_on_secondary</item>
    <item name="colorOnBackground">@color/color_on_background</item>
    <item name="colorOnSurface">@color/color_on_surface</item>
    <item name="colorOnError">@color/color_on_error</item>
</style>

我可以将颜色组合到一个主题中并继承到两个主题中吗?

【问题讨论】:

    标签: android android-theme android-styles material-components material-components-android


    【解决方案1】:

    只需使用:

    <style name="AppTheme.Base" parent="Theme.MaterialComponents.DayNight">
       <!-- add the colors -->
    </style>
    
    
    <style name="AppTheme.Base.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
    

    这样AppTheme.Base.NoActionBar 样式继承了所有样式 从上面的AppTheme.Base 样式并添加了windowActionBar windowNoTitle 属性。

    同时查看official documentation

    注意:如果您使用点符号来扩展样式,并且还包含 parent 属性,则父样式覆盖任何通过点符号继承的样式。

    【讨论】:

      猜你喜欢
      • 2019-04-21
      • 2019-08-23
      • 2021-03-21
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 2021-08-08
      相关资源
      最近更新 更多