Android appcompat库样式如何工作
我很困惑appcompat库中的样式是如何工作的 根据: 现在,我们在所有应用程序上使用工具栏/操作栏的支持实现 平台意味着我们不再阅读任何android:attributes 与操作栏相关 对于已经有appcompat设置的应用程序,这意味着 您应该删除v14+主题,这些主题在中重新设置了相同的值 android名称空间。请注意,这仅适用于 影响操作栏的样式/小部件 对于大多数应用程序,您现在只需要一个主题声明,即值/ 所以我的问题是: 如果我想在API 14+中使用material design ActionBar,我可以使用appcompat_v7中提供的ActionBar/工具栏,并在公共值/文件夹中设置样式,删除“android:”命名空间?但为什么我看到人们在写下面的代码:Android appcompat库样式如何工作,android,styles,android-appcompat,Android,Styles,Android Appcompat,我很困惑appcompat库中的样式是如何工作的 根据: 现在,我们在所有应用程序上使用工具栏/操作栏的支持实现 平台意味着我们不再阅读任何android:attributes 与操作栏相关 对于已经有appcompat设置的应用程序,这意味着 您应该删除v14+主题,这些主题在中重新设置了相同的值 android名称空间。请注意,这仅适用于 影响操作栏的样式/小部件 对于大多数应用程序,您现在只需要一个主题声明,即值/ 所以我的问题是: 如果我想在API 14+中使用material desi
<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:
命名空间属性作为操作栏/窗口相关的标志,v14、v20等也没有单独的主题。AppCompat提供的所有API级别的顶级属性的完整列表可以在中找到
互联网上的大部分代码(包括developer.android.com网站的部分代码)仍然是为v21之前的AppCompat编写的,它确实需要
android:
和无前缀版本。您正在使用吗?这不是官方图书馆。谷歌所说的任何东西都可能适用,也可能不适用。@karaokyo我不是,我只是用了一个例子,这可能只是意味着你看到的任何代码都没有使用支持库的v21。@karaokyo所以你的意思是,如果我使用v21支持库,那么我就不需要“android:”项了?这不是那篇文章所说的。它说appcompat库不会在操作栏样式中使用android名称空间属性。也就是说,在你的values/
文件夹中应该是app:windowContentOverlay
,谢谢!那很有帮助。但是,当我尝试在没有android:的情况下设置appcompat actionbar的例如elevation
或background
时,它没有任何效果,您能解释一下原因吗?您应该使用colorPrimary
为操作栏着色和getSupportActionBar()。setElevation()
关于设置高程的向后兼容方法-不幸的是,我不知道如何通过XML以向后兼容的方式设置高程。