gpt4 book ai didi

android - Material Design、AppCompat 和向后兼容性

转载 作者:行者123 更新时间:2023-12-02 13:31:42 25 4
gpt4 key购买 nike

我试图更好地理解使用 Material Design 的原理(我是这个领域的新手,并且一直在阅读文档和教程,但这个主题对我来说仍然有点模糊),我会很高兴得到一些帮助。到目前为止我尝试过的是有 2 个文件夹(values 和 value-21),每个文件夹都有一个 styles.xml 文件 -

值/styles.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>

values-v21/styles.xml:

<style name="AppTheme" parent="android:Theme.Material.NoActionBar"></style>

问题开始于我尝试使用从 AppCompatActivity 继承的 Activity (据我了解,这就是我需要做的,以便在 Lollipop 之前的设备上支持 Material 设计等功能的向后兼容性?我是否正确?更多信息这里会很棒)。如果我这样做,该应用程序将无法在具有 API 21 或更高版本的设备上运行,因为“AppTheme”必须继承自 AppCompat。

我可以做的是解决这个问题,创建一个继承自 AppCompat 的基本主题,然后使两个文件中的样式继承自该基本主题...但是我不再继承自 Material 。 ...这让我想到了这个问题 -

Material Design 只是一个给定的主题吗?如果是这样,我该如何解决我的问题?使用 AppCompatActivity 在这里到底能完成什么?或者,Material Design 本质上只是我应该遵循的一套规则和原则?如果是这样,为什么我们需要 Theme.Material.* 呢?如果有人能够向我提供有关该主题的任何额外信息,我会很高兴。

谢谢!

最佳答案

AppCompat 的全部意义在于,您只需要一个主题(您不需要在 values-v21 中使用单独的主题),并且在所有设备上都将获得相同的体验。

Theme.AppCompat 已经在 API 21+ 上扩展了 android:Theme.Material - 它只是为您处理所有版本检查。

关于android - Material Design、AppCompat 和向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39088064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com