【问题标题】:Setting name attributes in material design在材料设计中设置名称属性
【发布时间】:2015-10-03 16:42:57
【问题描述】:

我有一个简单的问题,但我真的不明白。当我们在 Material Design 下设置新样式时,我们使用父样式如下:

<style name="AppTheme.Base" parent="Base.Theme.AppCompat.Light">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

但是,在一些教程中,我看到他们将引用“android:”插入到属性中,例如:

<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>

我知道后者应该用于引用android中的每个属性,但我不明白为什么在这种情况下它有时会被省略,有时不会。

【问题讨论】:

  • android:colorPrimaryDark 是在 api21 中引入的。您可以将其与Theme.Material 一起使用。使用 AppCompat 主题,您必须使用 colorPrimary 属性

标签: android styles themes android-appcompat


【解决方案1】:

如果您使用Android V7 Support Library,则省略。在这种情况下,您使用 Theme.AppCompat 主题之一,而不是 Android 主题。看看Maintaining Compatibility

【讨论】:

    【解决方案2】:

    这取决于他们想要哪种兼容性:

    • 使用android:前缀它们引用平台属性,即它仅在存在该属性的设备上有效(例如API14+、API21+等)

    • 不使用android: 前缀,它们指的是与应用程序项目链接的Appcompat 库的属性,即它将在所有具有API 7+ 的设备上有效

    【讨论】:

      猜你喜欢
      • 2015-02-05
      • 2020-04-04
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多