Android AppBar SearchView占用所有空间,没有后退箭头

时间:2016-01-22 15:57:05

标签: java android xml searchview

我想查看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();

1 个答案:

答案 0 :(得分:0)

只需在你的.xml布局文件中添加一个工具栏(在我的情况下它是一个相对布局,但这不是一个需求。可能是一个线性布局或其他什么,只是你的&#39;曾经在你的活动布局中使用):

<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()中实例化您的活动布局:

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类中的searchview

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

它对我有用。希望它有所帮助。