当单击后退按钮时,我想转到上一个片段目标。我使用viewpager为底部导航页面创建了不同的片段。这是我当前用于navHost活动的代码
@Override
public void onBackPressed() {
BaseFragment fragment = fragments.get(main_pager.getCurrentItem());
boolean hadNestedFragments = fragment.onBackPressed();
// if no fragments were popped
if (!hadNestedFragments) {
if (backStack.size() > 1) {
// remove current position from stack
backStack.pop();
// set the next item in stack as current
main_pager.setCurrentItem(backStack.peek());
} else{
// super.onBackPressed();
}
}
}
这是BaseFragment中的代码
public boolean onBackPressed() {
return findNavController()
.navigateUp();
}
当我从一个片段返回到上一个片段时,我不想再次重新加载它,而是希望它具有与原来一样的状态。 (例如:在recyclerview项中具有相同的数据及其确切的滚动位置),将不胜感激。