使用App Compat主题而不是Material Theme的问题

时间:2016-11-02 20:47:23

标签: android android-layout

我想使用Material主题为我的应用程序和目标从Jelly Bean到" M"。

正确的建议是什么? 1.在21以下的api级别使用appcompat主题,并在21及以上使用标准材料 2)只需在所有api级别上使用appcompat。

如果我只是在所有API级别上使用appcompat,我会遗漏任何东西吗?

2 个答案:

答案 0 :(得分:2)

将AppCompat用于所有内容,如果您使用的话,还有内置的功能来处理< 21或> = 21。

真的唯一一次你应该使用标准材质主题是你支持的基础API是21+,但即便如此,你最终会使用app compat来添加新的东西

答案 1 :(得分:2)

您只能使用AppCompat主题。对于大多数样式,他们有自己的实现模仿更现代的方法。对于那些无法模仿的东西,他们只是不做它或者移动到默认值(想到的是Ripple效果.21 +设备将使用Ripple,但在其他设备上它将默认为标准按钮选择器)。如果他们可以使用原生方法,那么他们将使用这些方法。

但在某些情况下,您可能需要创建包含特定API级别所特有的属性的样式。在这种情况下,您需要创建一个layout-v##文件夹,其中##是要支持的API级别。然后输入与下layout文件夹中的名称相同的样式。 Android会选择合适的文件夹。对于任何其他资源文件夹也可以这样做。