【问题标题】:Android - remove three dots in SearchViewAndroid - 删除 SearchView 中的三个点
【发布时间】:2016-12-10 17:07:24
【问题描述】:

如何删除SearchView 右侧的三个点?

【问题讨论】:

  • 仅当 SearchView 打开时还是一直打开?
  • @GSala 仅当 SearchView 打开时

标签: android android-layout material-design


【解决方案1】:

在 onPrepareOptionsMenu 中设置为 false

@Override
public boolean onPrepareOptionsMenu (Menu menu) {
return false;
 }

【讨论】:

  • 它删除了工具栏上的所有项目
  • 什么意思?
【解决方案2】:

也许这对你有帮助

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_activity, menu);

    MenuItem searchMI = (MenuItem) menu.findItem(R.id.menu_search);
    searchMI.setOnActionExpandListener(new OnActionExpandListener(){
        @Override
        public boolean onMenuItemActionCollapse(MenuItem menuItem) {
            // Hide menu icon
            return true;
        }

        @Override
        public boolean onMenuItemActionExpand(MenuItem menuItem) {
            // Show menu icon
            return true;
        }
    });
    return true;
}

您可以像这样显示或隐藏图标:

menu.findItem(R.id.yourActionId).setVisible(true);
menu.findItem(R.id.yourActionId).setVisible(false);

【讨论】:

  • 它给我一个错误:java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.setOnActionExpandListener()
  • @athene 你试过它说的吗?使用MenuItemCompat.setOnActionExpandListener而不是setOnActionExpandListener?其余代码应该是一样的
【解决方案3】:

您需要将所有其他菜单项一一隐藏...

@Override
public boolean onMenuItemActionExpand (MenuItem item){
   menu.getItem(MENU_MAIN_REFRESH).setVisible(false);
   menu.getItem(MENU_MAIN_SETTINGS).setVisible(false);
   menu.getItem(MENU_MAIN_EXIT).setVisible(false);
   return true;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2017-05-18
    • 2018-12-01
    • 2016-07-01
    • 1970-01-01
    • 2016-05-19
    • 2020-04-18
    相关资源
    最近更新 更多