< API 21 中的溢出图标颜色

Overflow icon color in < API 21

在我的应用程序中,我有这样构造的工具栏:

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/LzTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/LzTheme.PopupOverlay"/>

    </android.support.design.widget.AppBarLayout>

并以这种方式设置样式:

<style name="LzTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/LZ_green</item>
    <item name="colorPrimaryDark">@color/LZ_green_dark</item>
    <item name="colorAccent">@color/LZ_yellow</item>
    <item name="android:windowBackground">@color/LZ_white</item>
    <item name="android:textColorPrimary">@color/LZ_dark</item>
    <item name="android:navigationBarColor">@color/LZ_green_dark</item>
</style>
<style name="LzTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>

<style name="LzTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>

在版本 android >=21 中,溢出图标颜色为白色 - 所需颜色。 Image API 21

在Api <21 溢出图标颜色较深。 Image API <21

谁能解释一下为什么 API below 21 中的图标是白色的??

感谢帮助。

如果您使用的是 AppCompat v23.2.0,则必须按照 Support Library 23.2 blog post 中的说明启用支持向量可绘制对象,因为这是使其正常工作所必需的:

对于 Gradle 2.0+,这涉及将行 vectorDrawables.useSupportLibrary = true 添加到 build.gradle 文件中的 defaultConfig

覆盖您应用的基本主题中的下一个样式:

<item name="actionOverflowButtonStyle">@android:style/Widget.Holo.ActionButton.Overflow</item>

<style name="Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@android:drawable/ic_menu_moreoverflow_holo_dark</item>
    <item name="android:background">?android:attr/actionBarItemBackground</item>
    <item name="android:contentDescription">@string/action_menu_overflow_description</item>
</style>