Android 更改后退按钮的形状

Android Changing Shape of The Back Button

我的应用程序操作栏上的后退按钮似乎有点大。当我将手指放在我的 phone 按钮上时,按钮会高亮显示,我可以看到它的右侧被圆角推过文本。

如何使按钮变成正方形并将文本移到操作栏的左侧而不是更靠中间?

尝试为工具栏的后退导航图标设置自定义可绘制对象

ActionBar ab = getSupportActionBar();
ab.setHomeAsUpIndicator(R.drawable.ic_back);
ab.setDisplayShowHomeEnabled(true);
ab.setDisplayHomeAsUpEnabled(true);

或者,如果您想要精确装饰,请使用自定义工具栏布局,

<?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:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/actionBarSize"
    android:minHeight="?android:attr/actionBarSize"
    app:layout_collapseMode="pin"
    app:layout_scrollFlags="scroll|enterAlways"
    app:popupTheme="@style/AppTheme.PopupOverlay"
    app:theme="@style/ToolbarStyle">

        <!-- Left side layout-->
        <LinearLayout
            android:id="@+id/layout_left_container"
            android:layout_width="wrap_content"
            android:layout_height="?attr/actionBarSize"
            android:layout_gravity="start|center"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:gravity="center|start"
            android:orientation="horizontal">

            <ImageButton
                android:id="@+id/iv_left_icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:id="@+id/txt_left_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:maxLength="30"
                android:singleLine="true"
                android:text="@string/app_name"
                android:textColor="@color/white"
                android:textSize="14sp" />

        </LinearLayout>

</android.support.v7.widget.Toolbar>

你可以使用 工具栏 属性

app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"

喜欢工具栏中的这个用法

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:popupTheme="@style/AppTheme.PopupOverlay"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp"
    app:contentInsetStartWithNavigation="0dp" />