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"/>
对我有用。希望对你有帮助。
我想查看 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"/>
对我有用。希望对你有帮助。