其他分享
首页 > 其他分享> > android – Material Design,AppCompat和向后兼容性

android – Material Design,AppCompat和向后兼容性

作者:互联网

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

价值观/ styles.xml:

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

值-V21 / styles.xml:

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

问题从我尝试使用从AppCompatActivity继承的活动开始(据我所知,这是我需要做的事情,以便在Lollipop之前支持向设备的向后兼容性,例如Material Design?我是否正确?这里有更多信息大).如果我这样做,该应用程序将无法在具有API 21或更高版本的设备上运行,因为“AppTheme”必须从AppCompat继承.

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

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

谢谢!

解决方法:

AppCompat的重点在于您只需要一个主题(在值-v21中不需要单独的主题),它将在所有设备上获得相同的体验.

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

标签:appcompatactivity,android,material-design,backwards-compatibility
来源: https://codeday.me/bug/20190918/1811272.html