Android Toolbar 返回按钮事件重写

今天写一个东西发现需要设置Toolbar的左侧返回按钮的事件,然后用了如下写法发现并不生效。

        mToolbar.setNavigationOnClickListener(v -> {
            if (mWebView.canGoBack()) {
                mWebView.goBack();
                return;
            }
            finish();
        });

经过试验这种写法是不生效的,可能在老版本用的时候没问题,于是又在网络上搜索发现如下方式生效。

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            if (mWebView.canGoBack()) {
                mWebView.goBack();
            } else {
                finish();
            }


            return true;
        }
        return super.onOptionsItemSelected(item);
    }

重写了onOptionsItemSelected的方法,item.getItemId获取到的就是返回按钮的ID,那么这个ID定义就是android.R.id.home,对比一下发现是它就执行我们定义好的逻辑。

说点什么

avatar
  Subscribe  
提醒