MenuItemCompat.setOnActionExpandListener 已弃用

MenuItemCompat.setOnActionExpandListener deprecated

如果搜索视图是否打开,我有一些代码可以设置一个布尔值。

MenuItemCompat.setOnActionExpandListener(action_search, new MenuItemCompat.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem item){
                isSearch = true;
                return true;
            }
            @Override
            public boolean onMenuItemActionCollapse(MenuItem item){
                isSearch = false;
                return true;
            }
        });

有效。我对它的回应方式感到满意。但是,它显示为已弃用,setOnActionExpandListener 被警告划掉

android.support.v4.view.MenuItemCompat.setOnActionExpandListener is deprecated

建议?

android.support.v4.view.MenuItemCompat.setOnActionExpandListener is deprecated

MenuItemCompat.setOnActionExpandListener 此方法已在 API 级别 26.1.0.

中弃用

Suggestions?

直接使用MenuItem.setOnActionExpandListener(MenuItem.OnActionExpandListener)

  • MenuItemCompat.OnActionExpandListener 在相关操作 view 展开或折叠时收到通知。 menu item 必须配置为使用标志 SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW.

  • 展开或折叠其操作 view

示例代码

MenuItem item = menu.findItem(R.id.action_order);
item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
     @Override
      public boolean onMenuItemActionExpand(MenuItem menuItem) {
          isSearch = true;
          return true;
      }

      @Override
      public boolean onMenuItemActionCollapse(MenuItem menuItem) {
           isSearch = false;
           return true;
      }
});

此接口已在 API 级别 26.1.0 中弃用。

而不是MenuItemCompat.OnActionExpandListener

直接使用MenuItem.OnActionExpandListener

Official Documentation

样本:

  MenuItem menuItemSearch = menu.findItem(R.id.action_search);

     menuItemSearch.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
        @Override
        public boolean onMenuItemActionExpand(MenuItem menuItem) {
            isSearch = true;
            return true;
        }

        @Override
        public boolean onMenuItemActionCollapse(MenuItem menuItem) {
            isSearch = false;
            return true;
        }
    });

奖金

设置OnQueryTextListenerOnCloseListener

    MenuItem menuItemSearch = menu.findItem(R.id.action_search);

  final SearchView searchView = (SearchView) menuItemSearch.getActionView();

     searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {

          //Do something

            return false;
        }

        @Override
        public boolean onQueryTextChange(String s) {
            return false;
        }
    });

    searchView.setOnCloseListener(new SearchView.OnCloseListener() {
        @Override
        public boolean onClose() {

        // do something
            return false;
        }
    });