如何删除后退按钮和 SearchView 之间的左侧 space

How can I remove the left space between back button and SearchView

我的 Toolbar 左侧后退按钮和 SearchView 之间一直有一个白色的大 space。我的 xml 文件看起来像这样

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_scrollFlags="scroll|enterAlways"
        android:contentInsetStart="0dp"
        app:contentInsetStart="0dp">

        <android.support.v7.widget.SearchView
            android:id="@+id/search_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>


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

在我的 Activity 中,我添加了一个后退按钮,如下所示

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

如果我将它设置为 false,它就可以正常工作。但我需要一个后退按钮。有办法解决吗?谢谢你。

我没有使用 menu layout

SearchView

中添加此 属性
<android.support.v7.widget.SearchView
            android:id="@+id/search_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingLeft="-16dp"
            android:paddingStart="-16dp"/>

检查一下。希望对您有所帮助。

默认情况下,Toolbar 在后退按钮后插入 16dp。因此,在 Toolbar 中包含 app:contentInsetStartWithNavigation="0dp",它将删除该空格。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:layout_scrollFlags="scroll|enterAlways"
    android:contentInsetStart="0dp"
    app:contentInsetStartWithNavigation="0dp"
    app:contentInsetStart="0dp">

在您的工具栏中添加这些行

android:contentInsetLeft="0dp"
android:contentInsetStart="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
android:contentInsetRight="0dp"
android:contentInsetEnd="0dp"
app:contentInsetRight="0dp"
app:contentInsetEnd="0dp"

在 onCreateOptionsMenu() 方法中使用 MaxWidth 选项以编程方式完成

@override 
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_search, menu);
    SearchView searchView = (SearchView)menu.findItem(R.id.menu_search).getActionView();
    searchView.setMaxWidth(Integer.MAX_VALUE);

如果使用 Kotlin,请使用:

searchView.maxWidth = Integer.MAX_VALUE