Change toolbar back arrow color

前端 未结 3 722
独厮守ぢ
独厮守ぢ 2021-01-05 09:19

Hi. In the picture above you can see a back arrow and a (part of) title. I changed the title color using the attached .xml code. But I want to color the back arrow

相关标签:
3条回答
  • 2021-01-05 09:40

    Be mindful of the theme you use. If you copied your ToolBar code from https://developer.android.com/training/appbar/setting-up, then you have this:

    <android.support.v7.widget.Toolbar
       android:id="@+id/my_toolbar"
       android:layout_width="match_parent"
       android:layout_height="?attr/actionBarSize"
       android:background="?attr/colorPrimary"
       android:elevation="4dp"
       android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
    

    Based on @Gabriele's answer (upvoted), I had to take out the android:theme="@style/ThemeOverlay.AppCompat.ActionBar" attribute and put it in styles.xml then customize the colorControlNormal attribute like so:

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

    Back to my Toolbar declaration, I modified as below:

    <android.support.v7.widget.Toolbar
       ...
       android:theme="@style/ToolBarTheme"
       />
    

    Cheers!

    0 讨论(0)
  • 2021-01-05 09:57

    You can override the theme in your Toolbar.
    With a Material Components theme:

      <com.google.android.material.appbar.MaterialToolbar
            style="@style/Widget.MaterialComponents.Toolbar.Primary"
            android:theme="@style/MyThemeOverlay_Toolbar"
            ..>
    

    with:

      <style name="MyThemeOverlay_Toolbar2" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    
        <!-- This attributes is used by navigation icon and overflow icon -->
        <item name="colorOnPrimary">@color/secondaryColor</item>
      </style>
    

    With an AppCompat theme:

    <android.support.v7.widget.Toolbar
      android:theme="@style/myToolbarTheme" 
      ...
    >
    

    Then in your theme you can define the colorControlNormal attribute:

       <style name=""  parent="ThemeOverlay.AppCompat.Dark.ActionBar">
          ....
          <item name="colorControlNormal">@color/myColor</item>  
       </style>
    
    0 讨论(0)
  • 2021-01-05 09:59

    For me I'm using my own drawable back arraw.

    first add this to your toolbar

      <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:titleTextColor="@color/White"
        app:title="Your Title"
        app:navigationIcon="@drawable/ic_back"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        >
    </androidx.appcompat.widget.Toolbar>
    

    as you can see

    app:navigationIcon="@drawable/ic_back"
    

    is the key to change the arraw as you want, and here is how it looks like

    <vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="24dp"
    android:width="24dp"
    android:viewportWidth="24"
    android:autoMirrored="true"
    android:viewportHeight="24">
    <path android:fillColor="#C87BB3" android:pathData="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" />
    

    it is a vector

    0 讨论(0)
提交回复
热议问题