当前位置: 首页 > 知识库问答 >
问题:

如何更改工具栏主图标的颜色

陶裕
2023-03-14

我用的是Android系统。支持v7。小装置。从这篇文章中学习了如何将汉堡包图标的颜色更改为白色,但当我调用时,向上/向后箭头仍然是黑色

setDisplayHomeAsUpEnabled(true);

我怎样才能使箭头也变成白色?

下面是我的工具栏看起来像当我调用setDisplayHomeAsUpEn的():

...这是我风格的相关部分。xml文件:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">#194C5F</item>
    <item name="colorAccent">@color/accent</item>
    <item name="drawerArrowStyle">@style/WhiteDrawerIconStyle</item>
</style>

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

共有3个答案

夏侯楷
2023-03-14

我使用以下代码以编程方式解决了此问题:

final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
upArrow.setColorFilter(Color.parseColor("#FFFFFF"), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);

修订1:

从API 23(Marshmallow)开始,可绘制资源abc_ic_ab_back_mtrl_am_alpha更改为abc_ic_ab_back_material

姚浩歌
2023-03-14

这就是你要找的。但这也改变了颜色的无线电按钮等。所以你可能想为它使用一个主题。

<item name="colorControlNormal">@color/colorControlNormal</item>
彭涵衍
2023-03-14

我通过编辑styles.xml解决了它:

<style name="ToolbarColoredBackArrow" parent="AppTheme">
    <item name="android:textColorSecondary">INSERT_COLOR_HERE</item>
</style>

...然后在“活动”中的工具栏定义中引用样式:

<LinearLayout
    android:id="@+id/main_parent_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <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"
        app:theme="@style/ToolbarColoredBackArrow"
        app:popupTheme="@style/AppTheme"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary"/>
 类似资料:
  • 我有一个工具栏。这张照片的背景颜色是明亮的橙色,最好看的颜色是白色而不是黑色。 我的默认颜色是黑色而不是白色。因为它会与其他东西冲突,所以几乎不可能被覆盖。我无法将主文本颜色更改为白色! 我设法改变了标题的颜色。我现在正在寻找的是如何将操作按钮的颜色也更改为白色。 我的代码: 主要活动: 菜单栏: 风格:

  • 如何从工具栏中获取图标以更改为使用bbdd中看到的方法获得的新图标。问题是我无法访问更新活动的事件以更改图标。我尝试使用onPreareOptionsMenu方法,但无法使其工作。我无法通过将代码放入onStart来做到这一点,因为它告诉我菜单对象为空或无效。 我的活动由AppCompactActive扩展并通过AdapterView加载。当我返回片段对话框或从下一个活动开始时,我遇到了问题。 谢

  • 我不能改变返回按钮的颜色。我用的是工具栏材质设计。在我的应用程序中,我应用了工具栏的黑色背景,但默认情况下,背面设计是黑色的,这就是为什么我只想更改此返回按钮的颜色。请给我解决办法。 非常感谢。

  • 问题内容: 我正在使用以下代码, 用于更改JFrame中的工具栏颜色。但这没有用。 是否可以在JFrame中更改标题栏的颜色? 问题答案: 这是不可能的。顶级JFrame由底层OS的外观控制。 您可以更改的颜色。

  • 我已经改变了我的应用程序的状态栏颜色为白色后,这个状态栏图标是不可见的。