私はアプリ内検索機能を実装しました。私は方向を固定しておくとうまくやめる。しかし、私のクエリを入力した後、私は向きを変えるsearchviewを変更すると、オリエンテーションが変更されたときに再度固定されている検索アイコンの代わりにオーバーフローアイコンが表示されます。また、オーバーフローアイコンは、クリックすると検索オプションを表示しません。検索アイコンが検索ビューの崩壊で機能しないオーバーフローに置き換えられました
changing orientation after entering query.
これはこれは、任意の助けが理解されるであろうonCreateOptionsMenu
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
menu.clear();
inflater.inflate(R.menu.options_menu, menu);
searchString = getActivity().getPreferences(0).getString("searchString", null);
final MenuItem searchMenuItem = menu.findItem(R.id.search);
searchView = (SearchView) MenuItemCompat.getActionView(searchMenuItem);
searchView.setIconifiedByDefault(true);
searchView.setQueryHint(getResources().getString(R.string.search_hint));
//set listener on search view to fire searchResultHandlerFrag
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Fragment fragment = new SearchHandlerFrag();
Bundle bundle = new Bundle();
bundle.putString("query", query);
fragment.setArguments(bundle);
searchView.clearFocus();
getActivity().getSupportFragmentManager().beginTransaction().addToBackStack(null).replace(R.id.mainContainer, fragment).commit();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
//repopulate search view with existing search string, if any
if (!TextUtils.isEmpty(searchString)) {
if(!searchMenuItem.isActionViewExpanded())
searchMenuItem.expandActionView();
searchView.setQuery(searchString, false);
searchView.clearFocus();
}
//trying to fix the overflow problem
MenuItemCompat.setOnActionExpandListener(searchMenuItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
searchView.setIconified(true);
return true;
}
});
}
私の断片である、私のメニューXML
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/search"
android:title="@string/search_title"
android:icon="@drawable/ic_search_white_24dp"
android:orderInCategory="1"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
です。前もって感謝します。
私はすでにそれを試みました。しかし、それはアクションバーの戻るボタンを削除し、また、ランドスケープモードでうまく見えません。 –