如何使用新的 DayNight 主题?

How to use the new DayNight Theme?

开始着手 Google 支持库的新更新,我想将 Theme.AppCompat.DayNight 实施到我的应用程序中。
我遇到的问题是似乎没有人解释如何定制它。因此,如果我想在白天使用不同的 colorAccent,在晚上使用不同的 colorAccent,我该怎么做?您是否应该指定不同的深色和浅色主题作为基础?提前致谢!

您可以使用 night resource qualifier folder.
通过这种方式,您可以为 dark(夜间)和 light 主题(白天)定义颜色和其他资源。

预选赛:
night: 夜间
notnight: 白天

为了使用 Material 组件主题 支持深色主题,请使用:

<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight">
    <!-- ... -->
</style>

使用 AppCompat 主题:

  <style name="AppTheme" parent="Theme.AppCompat.DayNight">
      <item name="colorPrimary">@color/primary</item>
   </style>

然后在您的应用主题中定义引用颜色资源,如果需要,覆盖 values-night 目录中的值:

示例:res\values\colors.xml

   <color name="colorPrimary">.....</color>

res\values-night\colors.xml文件夹中定义相同的颜色:

   <color name="colorPrimary">.....</color>