如何仅更改工具栏中的后退箭头?

Posted

技术标签:

【中文标题】如何仅更改工具栏中的后退箭头?【英文标题】:How to change only the back arrow in toolbar? 【发布时间】:2018-03-07 13:09:03 【问题描述】:

我正在使用getSupportedActionBar().setTitle("This Phone");

我已经设法使用Toolbar.setTitleTextColor(0xFFFFFFFF); 将标题颜色更改为白色

如何将后退箭头键的颜色也更改为白色?

【问题讨论】:

【参考方案1】:

您可以在您的活动中尝试此操作:-(在 setSupportActionBar(toolbar) 之后)

  Drawable backArrow = context.getResources().getDrawable(R.drawable.your_back_button);
  backArrow.setColorFilter(getResources().getColor(R.color.yourcolor), PorterDuff.Mode.SRC_ATOP);
  getSupportActionBar().setHomeAsUpIndicator(backArrow);

【讨论】:

【参考方案2】:

请看下面对我有用的 kotlin 函数。

private fun setToolbarProperties() 
    setSupportActionBar(toolbar)
    supportActionBar?.setDisplayHomeAsUpEnabled(true)
    supportActionBar?.title = "" //If you don't want to set title
    val upArrow = resources.getDrawable(R.drawable.ic_action_back,theme);
    supportActionBar?.setHomeAsUpIndicator(upArrow);

下面是一个工具栏的xml代码。

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.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_
    android:layout_
    android:background="@android:color/transparent"
    android:orientation="vertical"
    >

</androidx.appcompat.widget.Toolbar>

【讨论】:

【参考方案3】:

乔伊·戴伊。 尝试在 styles.xml 中将您的应用主题更改为“Theme.AppCompat.Light.NoActionBar”。

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style> 

【讨论】:

【参考方案4】:

尝试像这样在styles.xml中更改图标本身

    <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

            <item name="android:homeAsUpIndicator">@drawable/ic_new_icon</item>
    </style>

【讨论】:

【参考方案5】:

试试下面的代码:

从drawable中获取图片,然后设置颜色

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

如果你想通过样式将ToolBar标题和后退按钮图像的颜色更改为白色

参考:https://***.com/a/33339983/8448886

【讨论】:

【参考方案6】:

在您的 style.xml 中添加以下代码

<style name="ToolbarStyle" parent="@style/ThemeOverlay.AppCompat.ActionBar">
  <!-- Customize color of navigation drawer icon and back arrow --> 
  <item name="colorControlNormal">@color/toolbar_color_control_normal</item>
</style>

并在您的toolbar 中添加此属性app:theme="@style/ToolbarStyle"

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_
    android:layout_
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:theme="@style/ToolbarStyle" >
</android.support.v7.widget.Toolbar>

【讨论】:

以上是关于如何仅更改工具栏中的后退箭头?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置工具栏文本和后退箭头颜色

如何使用左侧的后退/前进箭头制作 iOS UIToolbar

后退和前进导航箭头图标不见了

禁用汉堡包到工具栏上的后退箭头动画

如何更改菜单栏中的 Xamarin 后退按钮?

更改 SearchView 上的工具栏颜色/样式单击