検索ビューをランドスケープで完全に展開し、アクティビティが作成されたときにアクションビューが既に展開されているという解決策を見つけました。ここでの動作:
1. resm-menuフォルダに、searchview_in_menu.xmlという名前のxmlファイルを最初に作成します。ここでは、次のコードを持っているでしょう:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:title="@string/search"
android:icon="@android:drawable/ic_menu_search"
android:actionLayout="@layout/searchview_layout" />
</menu>
注: "@文字列/検索は、" - RES-のstrings.xmlに次のようになります。
<string name="search">Search</string>
2.Secondが呼ばレイアウトを作成しますres-layoutフォルダ内の上記( "@ layout/searchview_layout")新しいレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<SearchView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/search_view_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
注:ここでは、その親(アンドロイド:layout_width =「match_parent」)の幅に合わせて、検索ビューの幅を設定している
3 searchview_layout.xmlは次のようになります。あなたのMainActivityクラス.INまたはonCreateOptionsMenu()メソッドに次のコードを検索するビューの書き込みを実装する必要が活動中:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.searchview_in_menu, menu);
//find the search view item and inflate it in the menu layout
MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) searchItem.getActionView();
//set a hint on the search view (optional)
mSearchView.setQueryHint(getString(R.string.search));
//these flags together with the search view layout expand the search view in the landscape mode
searchItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
| MenuItem.SHOW_AS_ACTION_ALWAYS);
//expand the search view when entering the activity(optional)
searchItem.expandActionView();
return true;
}
閉じるoffcourse
使用画面幅の代わりに、XXX。私は 'setOnSearchClickListener()'を使う必要がありました。なぜなら、私はハードウェアキープレス検索をしないからです。 –