Android AppBar SearchView 占用所有 space 没有后退箭头

Android AppBar SearchView takes all the space with no back arrow

我想查看 SearchView 后面的后退箭头。 http://i.imgur.com/Xetu0L1.png XML:

<item android:id="@+id/search"
      android:title="@string/search_btn_hint"
      android:icon="@drawable/ic_action_search"
      android:titleCondensed="@string/search_btn_hint"
      app:actionViewClass="android.support.v7.widget.SearchView"
      app:showAsAction="always" />

我尝试使用 "collapseActionView|ifRoom" 但它没有将焦点放在 SearchView 上。我的java代码给重点:

getMenuInflater().inflate(R.menu.search, menu);
final SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default
searchView.setQueryHint("Search...");
searchView.setFocusable(true);
searchView.setIconified(false);
searchView.requestFocusFromTouch();

只需在您的 .xml 布局文件中添加一个工具栏(在我的例子中,这是一个相对布局,但这不是必需的。可以是线性布局或其他任何您习惯使用的布局在你的活动布局中):

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/Background"
tools:context=".YourActivity">
        <android.support.v7.widget.Toolbar
            android:id="@+id/YOUR_TOOLBAR_ID_HERE"
            android:layout_height="?attr/actionBarSize"
            android:layout_width="match_parent"
            android:minHeight="?attr/actionBarSize"
            android:background="@color/Header"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            android:textSize="20sp">
        </android.support.v7.widget.Toolbar>
</RelativeLayout>

在 OnCreate() 中实例化您的 activity 布局:

setContentView(R.layout.your_activity_layout);

并在实例化布局后立即执行类似的操作:

mToolbar = (Toolbar) findViewById(R.id.YOUR_TOOLBAR_ID_HERE);
setSupportActionBar(mToolbar);
getSupportActionBar().setTitle(null);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

将此添加到 java class

中的搜索视图
searchView.setIconifiedByDefault(false);

最后,xml 可搜索菜单项:

<item
    android:id="@+id/action_searchable_activity"
    android:orderInCategory="1"
    android:icon="@drawable/ic_search_white_24dp"
    android:title="@string/title_activity_searchable"
    app:showAsAction="ifRoom"
    android:iconifiedByDefault="false"
    app:actionViewClass="android.support.v7.widget.SearchView"/>

对我有用。希望对你有帮助。