今天写一个东西发现需要设置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,对比一下发现是它就执行我们定义好的逻辑。