Android工具栏白色vs黑色

时间:2016-03-08 10:44:03

标签: android

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/purple2"
    android:minHeight="56dp"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:titleTextAppearance="@style/ToolbarTitle" />

在我的 nexus 6 上,后退按钮为白色,3点菜单为白色,标题为白色。在我运行的模拟器上, API级别14 标题为白色,但后退箭头和点菜单为黑色。怎么样?

2 个答案:

答案 0 :(得分:1)

  defaultConfig {
    applicationId "com.myapp.app"
    minSdkVersion 10
    targetSdkVersion 22
    multiDexEnabled true
    versionCode 25
    versionName "1.24"
    generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
    additionalParameters "--no-version-vectors"
}

这解决了我的2台设备的情况,不确定现在所有设备是否都是同一个故事。

答案 1 :(得分:1)

我可以通过检查下面的解决方案来修复类似的问题。我发布了同样的解决方案HERE

我发现AppCompat主题使用以下资源进行溢出按钮(3点):abc_ic_menu_overflow_material.xml

此资源的内容为:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0"
        android:tint="?attr/colorControlNormal">
    ...
</vector>

因此,正如您所看到的,它使用的是colorControlNormal和vectorDrawables

如何修复

根据Library V23.2.0发行说明(LINK HERE),我们必须更新build.gradle以添加对Vector的支持:

<强>的build.gradle

将以下行添加到构建gradle

Gradle 2.0(我没有测试过):

android {  
    defaultConfig {  
        vectorDrawables.useSupportLibrary = true  
    }  
}  

Gradle 1.5(我正在使用它..它有效):

android {  
    defaultConfig {  
        generatedDensities = []  
    }  

    aaptOptions {  
        additionalParameters "--no-version-vectors"  
    }  
}  

修复主题

也许,不需要这一步(因为可能,您的父主题已经将颜色设置为白色)。

但如果这些按钮仍为黑色,则必须将ColorControlNormal添加到主题中:

<强> ToolbarLayout

<android.support.v7.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ...
    android:theme="@style/MyToolBarStyle"
    ...  />

<强> styles.xml

<style name="MyToolBarStyle" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="colorControlNormal">@color/white</item>
</styel>

这就是我解决问题的方法。