【问题标题】:Is version specific style items required when using AppCompact?使用 AppCompat 时是否需要特定于版本的样式项?
【发布时间】:2016-12-15 14:46:59
【问题描述】:

请检查选项 1 和选项 2,在 values-v21 样式中定义平台特定样式属性(如 android:colorPrimary)有什么好处。

values/styles.xml

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="CommonTheme">

    </style>

    <style name="CommonTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
</resources>

选项 1:values-v21/styles.xml - 通过继承对所有版本使用 AppCompact。

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="CommonTheme">
        <!-- All customization of the theme for this version -->
        <item name="android:windowTranslucentStatus">true</item>
    </style>
</resources>

选项 2:values-v21/styles.xml - 编写特定于平台的样式属性以及继承。

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="CommonTheme">
        <item name="android:colorPrimary">@color/colorPrimary</item>
        <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="android:colorAccent">@color/colorAccent</item>
        <item name="android:windowTranslucentStatus">true</item>
    </style>
</resources>

我在不同的地方看到这两个选项,哪个更好?我们在选项 2 中有什么优势吗?

【问题讨论】:

    标签: android styles android-appcompat


    【解决方案1】:

    选项 2 完全没有必要,因为 AppCompat 本身会复制颜色,如其 values-v21 theme 所示:

    <!-- Copy our color theme attributes to the framework -->
    <item name="android:colorPrimary">?attr/colorPrimary</item>
    <item name="android:colorPrimaryDark">?attr/colorPrimaryDark</item>
    <item name="android:colorAccent">?attr/colorAccent</item>
    <item name="android:colorControlNormal">?attr/colorControlNormal</item>
    <item name="android:colorControlActivated">?attr/colorControlActivated</item>
    <item name="android:colorControlHighlight">?attr/colorControlHighlight</item>
    <item name="android:colorButtonNormal">?attr/colorButtonNormal</item>
    

    【讨论】:

      猜你喜欢
      • 2016-04-03
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      • 2014-10-05
      相关资源
      最近更新 更多