【问题标题】:How Do I extend Android Material Dark Theme如何扩展 Android Material Dark Theme
【发布时间】:2020-05-04 12:26:27
【问题描述】:

我知道我在这里可能犯的错误已经够多了。但是让我知道。 我已经尝试过尽我所能浏览 MaterialIO 文档,但它看起来如此复杂和复杂,每个页面中有十几个链接将我重定向到另一个次要组件。 就在那时我决定尝试一下。

  • 我将 materialIO 东西添加到我的依赖项中
  • 然后我将 Material 添加到我的清单文件中,并写了这个
<application ...
        android:theme="@style/Theme.MaterialComponents.DayNight" >
</application>
  • 接下来,我按照材料IO页面的某些部分的指示,制作了values/themes.xmlvalues-night/themes.xml
  • 我的直觉是在那些扩展 Material 主题并设置我的颜色值的资源中编写样式标签。我从 materialIO 页面找到的颜色:
    • 背景(0dp高程表面叠加)-->
    • 表面(带有 1dp 高程表面叠加)-->
    • 主要
    • 次要
    • 在背景上
    • 表面上
    • 在主要上
    • 在中学
  • 所以我开始将标签添加到 values-night/themes.xml。我无法将android: 应用于某些标签,而某些标签在我这样做时会引发错误。
<?xml version="1.0" encoding="utf-8"?>
<resources>
        <style name="AppCompat.." parent="Theme.MaterialComponents.DayNight">
                <item name="android:colorBackground">@color/JDBG</item>
                <item name="colorSurface">@color/JDSurface</item>
                <item name="colorPrimary">@color/JDPrimary</item>
                <item name="android:colorSecondary">@color/JDSecondary</item>
                <item name="android:OnBackground">@color/JDOnBackground</item>
                <item name="android:OnSurface">@color/JDOnSurface</item>
                <item name="OnPrimary">@color/JDOnPrimary</item>
                <item name="OnSecondary">@color/JDOnSecondary</item>
        </style>
</resources>
  • 然后我将颜色添加到各自的 colors.xmlcolors-night.xml 文件中,这告诉我这些值在基本值文件夹中没有声明,这可能会引发问题。

我不想用非常抽象的文档在每个点上引导我在十个方向上无所事事。因此问题。 . . 我做错了什么吗? 接下来我该怎么做?

【问题讨论】:

    标签: android material-design


    【解决方案1】:

    只需在资源文件中定义您的主题即可。
    例如res/values/styles.xml:

    <style name="MyTheme" parent="Theme.MaterialComponents.DayNight">
        <item name="colorPrimary">@color/....</item>
        <item name="colorSecondary">@color/....</item>
        <item name="colorOnPrimary">@color/....</item>
        <item name="colorOnSecondary">@color/....</item>
        .....
    </style>
    

    res/values/colors.xmlres/values-night/colors.xml 中定义颜色。

    然后在 Manifest 中应用主题:

    <application ...
            android:theme="@style/MyTheme" >
    

    还要检查official guide.

    【讨论】:

    • 如果我需要在应用内切换昼夜颜色主题怎么办?
    • @Jitin 你可以找到信息here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 2021-05-21
    • 1970-01-01
    • 2022-11-20
    相关资源
    最近更新 更多