其他分享
首页 > 其他分享> > android – appcompat库样式如何工作

android – appcompat库样式如何工作

作者:互联网

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

根据here

We now use the support implementation of Toolbar/ActionBar on all
platforms meaning that we no longer read any android: attributes
related to the action bar.

For apps which already have existing appcompat setups, this means that
you should remove your v14+ themes which re-set the same values in the
android namespace. Please note, this is ONLY applicable for
styles/widgets which affect the action bar.

For most apps, you now only need one theme declaration, in values/

所以这是我的问题:

如果我想在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,文件夹之间有什么区别?

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

解决方法:

是的,如果您使用AppCompat v21,您只需要一个主题为Theme.AppCompat(或主题,如Theme.AppCompat.Light)的单个主题,并且您不需要动作栏/窗口相关标志的android:namespace属性,v14,v20等也没有单独的主题.可以在AppCompat R.styleable Theme中找到AppCompat在所有API级别提供的顶级属性的完整列表.

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

标签:android,styles,android-appcompat
来源: https://codeday.me/bug/20190830/1764907.html