Android SearchView 小部件:setIconified[ByDefault or not](false) 不起作用

Jar*_*ler 3 android searchview android-toolbar

我已经设置了Toolbar一个SearchView小部件。thisToolbar菜单的 XML如下:

<item android:id="@+id/searchView"
    android:title="@string/search_title"
    android:icon="@drawable/ic_baseline_search_24px"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="collapseActionView|ifRoom" />
Run Code Online (Sandbox Code Playgroud)

在有这个的片段上Toolbar,我已经覆盖了它的方法onCreateOptionsMenu来显示Toolbar和配置SearchView.

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater menu_inflater) {
    menu_inflater.inflate(R.menu.action_bar_menu, menu);
    super.onCreateOptionsMenu(menu,menu_inflater);

    AppCompatActivity app_compat_activity = (AppCompatActivity) getActivity();
    SearchView search_view = (SearchView) menu.findItem(R.id.searchView).getActionView();
    search_view.setIconified(false);
    search_view.setIconifiedByDefault(false);
    search_view.clearFocus();
    SearchManager search_manager = (SearchManager) Objects.requireNonNull(app_compat_activity).getSystemService(Context.SEARCH_SERVICE);
    search_view.setSearchableInfo(Objects.requireNonNull(search_manager).getSearchableInfo(app_compat_activity.getComponentName()));
}
Run Code Online (Sandbox Code Playgroud)

我的目标是SearchView扩展(填充所有Toolbar的宽度)。上面的代码不起作用。

Zai*_*rza 6

改变

app:showAsAction="collapseActionView|ifRoom" 
Run Code Online (Sandbox Code Playgroud)

app:showAsAction="always"
Run Code Online (Sandbox Code Playgroud)

消除 search_view.clearFocus();