ActionBar中的图标的不同颜色

时间:2016-03-12 13:15:07

标签: android android-layout android-actionbar

我的应用操作栏中的图标颜色不同,具体取决于设备的API级别。我希望他们在所有设备上看起来都一样。

这就是它在API 23中的表现,这就是我希望它在所有设备中的表现:

This is how it looks in API 23, which is how I want it to be

这就是旧版本的外观:

enter image description here

我有以下styles.xml:

值/ styles.xml

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base">

</style>

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

V21 / styles.xml

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base">
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>

这是actionBar的布局:

...
<android.support.v7.widget.Toolbar
        android:id="@+id/my_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:elevation="4dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
...

这是我的Manifest.xml的一部分

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:name="com.martinez.mario.rutapp.base.RutappApplication"
        android:theme="@style/MyMaterialTheme" >

如何在所有设备中使箭头和溢出图标显示为白色?

感谢。

1 个答案:

答案 0 :(得分:2)

您可能遇到appcompat支持库23.2.0中的错误,更新到23.2.1或启用了支持向量drawables:

vectorDrawables.useSupportLibrary = true

23.2.0中的Appcompat引入了矢量支持drawables的生成(如果启用),问题是appcompat本身利用了这个并且也使用了它,但这需要启用向量drawables生成。它自己的使用在23.2.1中再次被恢复,以便不要求这样做。