代码之家  ›  专栏  ›  技术社区  ›  JarsOfJam-Scheduler

Android SearchView小部件:setIconified[是否默认](false)不工作

  •  2
  • JarsOfJam-Scheduler  · 技术社区  · 6 年前

    我已经建立了一个 Toolbar 在里面,一个 SearchView 小装置。这个的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" />
    

    在有这个的碎片上 工具栏 ,我已经重写了它的方法 onCreateOptionsMenu 显示 以及配置 搜索框 .

    @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()));
    }
    

    扩展(填充所有 工具栏 的宽度)。上面的代码不起作用。

    1 回复  |  直到 6 年前
        1
  •  6
  •   Zaid Mirza    6 年前

    改变

    app:showAsAction="collapseActionView|ifRoom" 
    

    app:showAsAction="always"
    

    删除 search_view.clearFocus();