我们可以重写 onOptionsItemSelected(MenuItem item)
方法,为 Android Navigation-Component 的返回按钮添加自定义的行为,使其能够正确地返回到 ViewPager2 视图。
以下是代码示例,其中 mViewPager
是您的 ViewPager2 对象。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (mViewPager.getCurrentItem() == 0) {
// 返回到 Navigation-Component 管理的上一个 Fragment 或 Activity
NavUtils.navigateUpFromSameTask(this);
} else {
// 返回到 ViewPager2 的前一个 Fragment
mViewPager.setCurrentItem(mViewPager.getCurrentItem() - 1);
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}