Appcompat工具栏的后退按钮和选项按钮为黑色

时间:2016-03-03 20:10:41

标签: android xml button toolbar

我们在应用中使用新工具栏而不是旧操作栏。

在Android 5及更高版本上,一切都按预期工作。在Android 4及更低版本中,后退按钮和选项按钮以黑色

显示

Android 4 and lower : the buttons are black

虽然它们应该白色

Android 5 and higher : the buttons are white

我们的themes.xml默认如下:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent</item>

    <item name="colorPrimary">@color/ColorPrimary</item>
    <item name="colorPrimaryDark">@color/ColorPrimaryDarker</item>
    <item name="colorAccent">@color/ColorPrimaryRipple</item>
</style>

<!-- AppCompat Theme Transparent -->
<style name="Theme.Translucent" parent="AppTheme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@color/club_nestle_description_activity_background</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
</style>

工具栏:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/ColorPrimary"
    android:elevation="4dp"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:2)

我找到了解决方案:我的gradle文件缺少以下几行:

android {  
   defaultConfig {  
     generatedDensities = []  
  }  

  // This is handled for you by the 2.0+ Gradle Plugin  
  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 } 

答案 1 :(得分:1)

试试这个。为Toolbar

创建自定义主题
<style name="MyToolbarStyle" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="colorControlNormal">@android:color/white</item>
    <item name="android:textColorPrimary">@android:color/white</item>
</style>

并像这样申请

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/ColorPrimary"
    android:elevation="4dp"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/MyToolbarStyle" />

编辑:如果这不起作用,请尝试在您的活动中以编程方式更改色调颜色:

final Drawable upArrow = ContextCompat.getDrawable(this, R.drawable.abc_ic_ab_back_mtrl_am_alpha);
upArrow.setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);

请参阅@Carles answer了解更多信息。

希望它的帮助!

答案 2 :(得分:-1)

尝试使用AppTheme样式:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">