【问题标题】:How to handle back arrow event in a SearchView如何处理 SearchView 中的后退箭头事件
【发布时间】:2017-08-11 12:40:05
【问题描述】:

如何处理 searchview 小部件中后退箭头上的点击事件:

我试过这段代码,但它不起作用:

searchtollbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Log.d(TAG, "back arrow clicked");
    }

});

我也试过这个:

MenuItemCompat.setOnActionExpandListener(item_search, new 
MenuItemCompat.OnActionExpandListener() {
    @Override
    public boolean onMenuItemActionCollapse(MenuItem item) {
        // Do something when collapsed
        return true;
    }

    @Override
    public boolean onMenuItemActionExpand(MenuItem item) {
        // Do something when expanded
        return true;
    }
});

上面代码的问题是调用onMenuItemActionCollapse()方法也会执行onQueryTextChange(),这是不可取的。

所以请帮忙。

【问题讨论】:

  • 这不是重复的。此问题描述了一个特殊问题,即后退按钮导航由于 SearchView 的存在而无法正常工作。这不是一般的“如何将返回按钮添加到工具栏”的问题。

标签: android toolbar searchview


【解决方案1】:

要处理这个问题,您必须重写 onOptionsItemSelected 方法。

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
            case android.R.id.home:
                // handle back event.
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }

【讨论】:

    【解决方案2】:

    试试

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

        SearchView searchView = new SearchView(((MainActivity) mContext).getSupportActionBar().getThemedContext());
        item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem menuItem) {
                Log.d( TAG, "expand" );
                return true;
            }
    
            @Override
            public boolean onMenuItemActionCollapse(MenuItem menuItem) {
                Log.d( TAG, "collapse" );
               
    
                return true;
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      相关资源
      最近更新 更多