【问题标题】:How can I remove the left space between back button and SearchView如何删除后退按钮和 SearchView 之间的左侧空间
【发布时间】:2018-04-23 08:46:03
【问题描述】:

我的Toolbar 左侧在后退按钮和SearchView 之间一直有一个很大的空白。我的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

【问题讨论】:

标签: android toolbar searchview


【解决方案1】:

默认情况下,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">

【讨论】:

    【解决方案2】:

    在 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
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        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"/>
        

        并检查它。希望这会对你有所帮助。

        【讨论】:

          猜你喜欢
          • 2020-08-29
          • 1970-01-01
          • 2016-05-26
          • 1970-01-01
          • 1970-01-01
          • 2016-06-12
          • 2016-12-30
          • 1970-01-01
          • 2020-02-09
          相关资源
          最近更新 更多