Android SearchView 小部件 : setIconified[ByDefault or not](false) not working

标签 android android-toolbar searchview

我已经设置了一个 Toolbar 和一个 SearchView 小部件。此 Toolbar 菜单的 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" />

在具有此 Toolbar 的 fragment 上,我已覆盖其方法 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()));
}

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

最佳答案

改变

app:showAsAction="collapseActionView|ifRoom" 

app:showAsAction="always"

移除 search_view.clearFocus();

关于Android SearchView 小部件 : setIconified[ByDefault or not](false) not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52354292/

相关文章:

Android折叠工具栏平滑滚动没有发生

android - 使用 SearchView 时如何处理 ActionBar 的图标可见性

android - EditText 光标在 Android 5.0 (Lollipop) 上不可见

android - 使用 xml 降低 Android 工具栏高度

使用 SQLite 处理 Android 工具栏图标

android - 从 SearchView 小部件中删除默认搜索图标

android - 如果数据不共享给其他应用程序,ContentProvider 对于 SearchView 来说是多余的吗?

android - 无法启动 Gauge Intellij 插件

android - 阻止 Android 布局我所有的 View

android - 是否可以在 Android 设备本身上合并/安装拆分的 APK 文件(AKA "app bundle"),无需 root?