更改操作栏提供的默认后退箭头的颜色

时间:2016-11-16 11:22:35

标签: android colors android-actionbar

我正在设置操作栏的后箭头并改变其颜色,如下所示:

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

正如您所看到的,我正在更改此行中箭头的颜色,因为默认返回的箭头是灰色的,在此处:

upArrow.setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);

虽然我提供的颜色white具有以下十六进制代码#FFFFFFFF,但颜色正在发生变化,但问题是它有点透明。

这里有两张图片可以说明我的观点。

它的外观如下:

This is how it looks

虽然颜色应该像其他组件一样:

enter image description here

我尝试了PorterDuff.Mode.XXXX下的所有选项,但都没有。

2 个答案:

答案 0 :(得分:2)

改变你的style.xml

    <style name="MyCustomTheme" parent="Custom.Base">

   </style>

<style name="Custom.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>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

<style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@android:color/white</item>
</style>

答案 1 :(得分:1)

如果您正在使用工具栏 在AppTheme中添加项目。

<item name="colorControlNormal">@color/white</item>

但请确保您的布局上的工具栏元素中没有定义其他主题。