SearchViewを常に展開し、ActionBarにもう1つのボタンを表示して、ユーザーがSearchActivityの検索文字列にすばやくアクセスできるようにする必要があります。
私は自分の活動のためにこのメニューレイアウトを持っています:
<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>
そして、検索アクティビティクラスで、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);
と、この写真が表示されることです。
2番目のメニュー項目がないことに気付くでしょう。ここで、android:showAsAction = "always | collapsActionView"を設定すると、デフォルトで折りたたまれますが、2番目のアイテムが表示されます。
上の画像では、すでに検索アイコンを押しています。
私が理解できない2つの問題があります:
- 拡張検索ビューと構成アクションのアイコンの2つの要素を常に表示するにはどうすればよいですか?
- この醜い2番目の検索アイコンを取り除くにはどうすればよいですか?