我需要显示 SearchView 始终展开并在 ActionBar 中再显示一个按钮,以便用户快速访问 Search Activity 中的搜索字符串。
我的活动有这个菜单布局:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/ic_action_search"
android:showAsAction="always"
android:actionViewClass="com.actionbarsherlock.widget.SearchView"/>
<item android:id="@+id/action_configure"
android:title="@string/action_configure"
android:icon="@android:drawable/ic_menu_preferences"
android:showAsAction="always" />
</menu>
在 Search 活动类中,我将 ActionBar 配置如下:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.search, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView)menu.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
searchView.setSubmitButtonEnabled(false);
return true;
}
问题是,如果我这样做,searchView.setIconifiedByDefault(false);
我会看到这张照片:
您会注意到没有第二个菜单项。在这里,如果我设置 android:showAsAction="always|collapseActionView",它会默认折叠,但我现在可以看到第二项:
在上图中,我已经按下了搜索图标
有两个问题我想不通:
- 如何始终显示两个元素:扩展搜索视图和配置操作图标?
- 如何摆脱这个丑陋的第二个搜索图标?