如何扩展 Android Material 深色主题
How Do I extend Android Material Dark Theme
我知道我在这里犯的错误可能已经够多了。但是让我知道。
我已经尝试尽我所能地浏览 MaterialIO 文档,但它看起来非常混乱和复杂,每个页面中都有十几个链接将我重定向到另一个次要组件。
那是我决定尝试的时候。
- 我将 materialIO 内容添加到我的依赖项中
- 然后我将 Material 添加到我的清单文件中,并写了这个
<application ...
android:theme="@style/Theme.MaterialComponents.DayNight" >
</application>
- 接下来,我按照 material IO 页面的某些部分的指示制作了
values/themes.xml
和 values-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.xml
和 colors-night.xml
文件中,这告诉我这些值在基值文件夹中没有声明,这可能会引发问题。
我不想在非常抽象的文档上无所事事,这些文档在每个点上都引导我十个方向。因此问题。 . .
我做错了什么吗?
接下来我该做什么?
只需在资源文件中定义您的主题。
例如 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.xml
和 res/values-night/colors.xml
中的颜色。
然后在 Manifest 中应用主题:
<application ...
android:theme="@style/MyTheme" >
同时检查 official guide.
我知道我在这里犯的错误可能已经够多了。但是让我知道。 我已经尝试尽我所能地浏览 MaterialIO 文档,但它看起来非常混乱和复杂,每个页面中都有十几个链接将我重定向到另一个次要组件。 那是我决定尝试的时候。
- 我将 materialIO 内容添加到我的依赖项中
- 然后我将 Material 添加到我的清单文件中,并写了这个
<application ...
android:theme="@style/Theme.MaterialComponents.DayNight" >
</application>
- 接下来,我按照 material IO 页面的某些部分的指示制作了
values/themes.xml
和values-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.xml
和colors-night.xml
文件中,这告诉我这些值在基值文件夹中没有声明,这可能会引发问题。
我不想在非常抽象的文档上无所事事,这些文档在每个点上都引导我十个方向。因此问题。 . . 我做错了什么吗? 接下来我该做什么?
只需在资源文件中定义您的主题。
例如 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.xml
和 res/values-night/colors.xml
中的颜色。
然后在 Manifest 中应用主题:
<application ...
android:theme="@style/MyTheme" >
同时检查 official guide.