在 Android 中使用*主题对我来说一直很困难。我知道Android中有哪些主题和样式,但不知怎的使用它们,我感觉有点痛苦。
例如我发现很难的情况之一是父主题之间的区别以及如何相应地使用它们。例如“Theme.Design.Light.NoActionBar”和“Theme.AppCompat.Light.NoActionBar”之间的区别,其中NoActionBar部分保持不变,但其他所有内容都发生了变化。
我已经在互联网上尝试了数十种资源,但上述特定主题对我来说仍然不清楚。
我最近的项目中使用的是
Theme.Material3.Light.NoActionBar
它定义的是父主题是一个没有 Action Bar 的 Material 3 Light 主题,它遵循 Material3 指南和原则,
以同样的方式,如果我们有
Theme.Material3.DayNight.NoActionBar
那么它表示它也是来自 Material3 库的主题,遵循 Material3 指南,并且具有 DayNight 模式,允许我们遵循设备主题,即深色和浅色主题,
我们也曾经有
Theme.MaterialComponents.Light.NoActionBar
,它遵循 M2 的材料指南,您可以在这里查看
以同样的方式,如果我们使用像
Theme.AppCompat.Light.NoActionBar
这样的Appcompat主题,它表示您正在使用应用程序兼容库下没有操作栏的主题,
类似地
Theme.Design.Light.NoActionBar
遵循Google很久以前给出的设计原则,它太旧了我在过去5年里一直在开发应用程序,我看到一些开发人员使用它,但它非常罕见。
所有这些选项可能有点令人困惑,但很简单,我们使用三个主要变体,即
Theme.Material3.Light.NoActionBar
- 没有操作栏的浅色主题
Theme.Material3.Dark.NoActionBar
- 没有操作栏的黑暗主题
Theme.Material3.DayNight.NoActionBar
- 当您想在应用程序中添加浅色和深色主题时,可以使用日夜主题
谈到 Material3、Material Components、App Compat 和 Material design,这取决于开发人员及其团队来决定使用哪个,但我建议使用 Material3,它很微妙,支持动态主题,有 Google 的支持并有文档这让生活变得更轻松,所有组件都得到了很好的解释,请查看https://m3.material.io/了解更多详细信息