appcompat库样式如何工作

时间:2015-03-30 03:00:43

标签: android styles android-appcompat

我对appcompat库中的样式如何工作感到很困惑。

根据here

  

我们现在使用Toolbar / ActionBar的支持实现   平台意味着我们不再读取任何android:属性   与行动栏有关。

     

对于已有appcompat设置的应用,这意味着   你应该删除你的v14 +主题,重新设置相同的值   android命名空间。请注意,这仅适用于   影响操作栏的样式/小部件。

     

对于大多数应用,您现在只需要一个主题声明,在值/

所以这是我的问题:

如果我想在API 14+中使用材料设计ActionBar,我可以使用appcompat_v7中提供的ActionBar / Toolbar并将其设置在公共值/文件夹中并删除“android:”命名空间?但为什么我看到人们在下面编写代码:

<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ....
    <item name="windowContentOverlay">@null</item>
    <item name="android:windowContentOverlay">@null</item>
    ....
</style>

为什么“android:”命名空间在那里?上面的代码和使用value-v21,value-v14,文件夹之间有什么区别?

有人可以解释或指导我找到正确的来源吗?

1 个答案:

答案 0 :(得分:5)

是的,如果你使用AppCompat v21 +,你只需要一个主题为Theme.AppCompat的主题(或Theme.AppCompat.Light等子主题),你需要操作栏/窗口相关标志的android:命名空间属性,v14,v20等的单独主题。可以在AppCompat R.styleable Theme中找到AppCompat在所有API级别提供的顶级属性的完整列表。

互联网上的大部分代码(包括developer.android.com网站的部分内容)仍然是针对v21之前的AppCompat编写的,其中 需要android:和非前缀版本。