【发布时间】:2015-03-30 03:00:43
【问题描述】:
我对 appcompat 库中的样式如何工作感到很困惑。
根据here:
我们现在对所有工具栏/ActionBar 的支持实现 平台意味着我们不再阅读任何 android: 属性 与操作栏相关。
对于已有 appcompat 设置的应用,这意味着 您应该删除您的 v14+ 主题,这些主题在 安卓命名空间。请注意,这仅适用于 影响操作栏的样式/小部件。
对于大多数应用程序,您现在只需要一个主题声明,在 values/
所以这是我的问题:
如果我想在 API 14+ 中使用 Material Design ActionBar,我可以只使用 appcompat_v7 中提供的 ActionBar/Toolbar 并将其设置在 common value/ 文件夹中并删除“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, 文件夹有什么区别?
有人可以解释或指导我找到正确的来源吗?
【问题讨论】:
-
你在使用ActionBarSherlock吗?这不是官方图书馆。谷歌所说的任何内容可能适用也可能不适用于它。
-
@karaokyo 我不是,我只是举个例子
-
那么这可能只是意味着您正在查看的任何代码都没有使用支持库的 v21。
-
@karaokyo 所以你的意思是如果我使用 v21 支持库那么我不需要“android:”项目?
-
那篇文章不是这么说的。它说 appcompat 库不会在 android 命名空间属性中查找操作栏样式。 IE。它应该只是您的
values/文件夹中的app:windowContentOverlay
标签: android styles android-appcompat