材料devise,AppCompat和向后兼容性

我试图理解使用Material Design的原理(我是这个领域的新手,一直在阅读文档和教程,但是这个主题对我来说还是有些含糊),我会很高兴一些帮助。 我到目前为止所尝试的是每个文件夹都有一个styles.xml文件的2个文件夹(值和值为21)

价值观/ styles.xml:

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

值-V21 / styles.xml:

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

这个问题开始于我尝试使用从AppCompatActivityinheritance的活动(据我的理解,这就是我需要做的,以支持Lollipop之前的设备上的向后兼容性,如材料devise?我是否正确?大)。 如果我这样做,应用程序将无法运行在具有API 21或以上的设备上,因为“AppTheme”必须从AppCompatinheritance。

我能做些什么来解决这个问题,是创build一个从AppCompatinheritance的基本主题,然后使这两个文件中的样式从基本主题inheritance…但是,我不是从材料inheritance….这带来了我的问题(S) –

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

谢谢!

AppCompat的重点在于你只需要一个主题(你不需要单独的values-v21 ),在所有设备上都是一样的。

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