导航而无需使用导航架构重新加载片段

时间:2020-05-11 11:23:01

标签: android android-fragments onbackpressed android-navigation-graph navigation-architecture

当单击后退按钮时,我想转到上一个片段目标。我使用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项中具有相同的数据及其确切的滚动位置),将不胜感激。

0 个答案:

没有答案