【问题标题】:New AppCompat-v7 (v21) and properties' android: prefix新的 AppCompat-v7 (v21) 和属性的 android: 前缀
【发布时间】:2014-12-13 19:16:05
【问题描述】:

使用新的 AppCompat-v7 (v21) 在我看来不再需要声明 属性两次,一次不带android:前缀,一次带android:前缀,用于自定义ActionBar。
也许,我认为,因为操作栏样式已经从 Base.V7.Theme.AppCompat 继承,然后在所有库的 values-vXX 中覆盖没有 android: 前缀xml 文件。
是这样还是我弄错了?谢谢

编辑:
可能是因为 AppCompat-v7 (v21) 总是使用android.support.v7.widget.Toolbar 来制作 ActionBar,即使它在 Lollipop 设备上运行也是如此?

【问题讨论】:

  • 您的编辑是正确的。
  • 那么与以前版本的主要区别在于,v21 在运行设备 Android 3.0+ 上可用时不是原生 ActionBar 上的包装器。对吗?

标签: android android-appcompat android-actionbar-compat


【解决方案1】:

对于仅在 API 21 (Lollipop) 上可用的属性,您应该创建 values-v21/ 目录,您可以在其中放置“android”和“appcompat”,例如

  <item name="colorAccent">#276181</item>
    <item name="colorPrimary">@android:color/transparent</item>
    <item name="colorPrimaryDark">#276181</item>

    <item name="android:colorPrimary">#276181</item>
    <item name="android:colorPrimaryDark">#276181</item>

在 values 目录(21 之前)中,您将只放置“colorAccent”并且只放置没有 android 前缀的“colorPrimary”(因为它不可用,但 appcompat 知道它)。

【讨论】:

  • 没有必要:它适用于所有平台,只有 colorPrimaryvalues.xml 中没有前缀的其他属性。
  • GPack,当我想在应用切换器中查看颜色时,它对我不起作用。设置“android:”可以解决这个问题,也许它最近被修复了?
  • 我正在测试v21版本,我不知道它与旧版本的AppCompat-v7有关。
  • 我的意思是 appcompat-v7 有 21.0.0 版本,它已经修复了几个错误,也许已经改变了。
猜你喜欢
  • 2014-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 2015-02-04
  • 2015-10-04
相关资源
最近更新 更多