将SearchView放在后退按钮图标的右侧

时间:2017-09-20 22:40:05

标签: android toolbar searchview

所以我正在实现一个SearchView,现在我在布局中有两个项目。后退按钮和搜索视图。

我想知道如何确保在搜索视图之前屏幕左侧显示后退按钮,而不是相反。

这是布局文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/back_btn"
        android:title="@string/search"
        app:icon="@drawable/ic_action_back_black"
        android:icon="@drawable/ic_action_back_black"
        app:showAsAction="ifRoom|collapseActionView"/>

    <item android:id="@+id/search"
        android:title="@string/search"
        app:icon="@drawable/ic_search_black_24dp"
        android:icon="@drawable/ic_search_black_24dp"
        app:showAsAction="ifRoom|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"/>

</menu>

我尝试将后退按钮放在搜索视图之前,它一直正常,直到我点击搜索框。

“搜索”视图展开,后退按钮保持在屏幕右侧。

问题:即使搜索框展开,有没有办法确保后退按钮会保留在左侧?

这是我正在使用的工具栏:

<?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"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/PopupMenuStyle"
    android:id="@+id/my_awesome_toolbar"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/actionBarSize"
    app:titleTextColor="@android:color/black"
    android:layout_alignParentTop="true"
    android:gravity="right"
    android:elevation="5dp">

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

2 个答案:

答案 0 :(得分:1)

希望这会对某人有所帮助

  • 首先,确保您的活动没有ActionBar
 <item name="windowActionBar">false</item>
  • 第二,将此代码添加到您的.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.AppBarLayout
        android:id="@+id/my_appbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:padding="@dimen/margin_small">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <android.support.v7.widget.Toolbar
                android:id="@+id/my_toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="-9dp"
                android:layout_weight="6" />

            <android.support.v7.widget.SearchView
                android:id="@+id/my_search_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/md_white_1000"
                android:clickable="true"
                android:focusable="true"
                android:iconifiedByDefault="false" />
        </LinearLayout>

    </android.support.design.widget.AppBarLayout>
  • 最后,以编程方式设置后退箭头
  

Display Back Arrow on Toolbar

答案 1 :(得分:0)

在搜索视图标记内添加此属性android:maxWidth