【问题标题】:expandActionView in onCreateOptionsMenu removes or hides other menu items from action bar permanentlyonCreateOptionsMenu 中的 expandActionView 永久删除或隐藏操作栏中的其他菜单项
【发布时间】:2018-10-19 23:55:10
【问题描述】:

我在操作栏中有一个searchView,当用户在searchView 中进行查询然后旋转设备时,我在onCreateOptionsMenu 中的searchView 中设置了查询,并将searchView 扩展为menuItem.expandActionView(),因为searchView.setIconified(false)对我没有影响,但调用 menuItem.expandActionView() 会删除或隐藏其他菜单项即使在用户关闭 searchView 后其他菜单项仍然隐藏!在用户关闭 searcheView 后,甚至 searchView 图标也没有显示在操作栏中其他菜单项和 serachView 已将 showAsAction 设置为 ifRoom

我很惊讶,当用户通过单击搜索图标展开操作视图时没有问题,但是当我致电 expandActionView 时,我遇到了这个问题!

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    final MenuItem searchMenuItem = menu.findItem(R.id.searchMenuItem);
    searchView = (SearchView) searchMenuItem.getActionView();
    searchView.setOnQueryTextListener(this);
    searchView.setOnCloseListener(this);
    searchView.setSubmitButtonEnabled(false);

    searchView.setIconifiedByDefault(true);// <-- this line has no effect even when using false !!

    if(initialQuery != null) {

        searchView.setIconified(false);// <-- this line has no effect !!!

        searchView.setQuery(initialQuery, true);
        searchMenuItem.expandActionView();//<-- this line expands searchView but hides other menu items!!
        searchView.setQuery(initialQuery, true);
    }
    return super.onCreateOptionsMenu(menu);
}

【问题讨论】:

    标签: android android-actionbar searchview


    【解决方案1】:

    我已经使用并且正在为我工​​作的解决方案是使用alwaysnever 而不是ifRoom for showAsAction

    【讨论】:

      猜你喜欢
      • 2013-12-18
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多