使用popBackStack支持片段

时间:2018-04-06 17:17:17

标签: android android-fragments

我目前正在使用BottomViewNavigation Android应用。我在底栏有3个导航(类似于Instagram底栏)。让我们将它们命名为A,B和C.

在B中,我正在使用来自服务器的数据加载回收站视图。在B viewCreated上,异步将与ProgressDialog一起运行并填充多个cardView。加载后,我可以点击cardView查看新片段中的完整详细信息,比方说B_1。另外当我点击cardView时,我正在添加addToBackStack,这样当我点击硬件后退按钮时,它会将我带回B并重新加载列表。

当我在B_1时发生问题,我点击底部栏A。

当然,每次点击A,B或C时我都会尝试使用popBackStack。当我单击A并删除所有后台堆栈时,B将在弹出过程中恢复,导致B的ProgressDialog在显示Fragment A之前显示一段时间。

我试着四处寻找正确实现带有backstack的片段,而没有先前的视图弹出,遗憾的是找不到任何解决方法。我确实尝试过popBackStackImmediate,没有好处。我确实尝试过.POP_BACK_STACK_INCLUSIVE,没有用。

寻求关于我们如何在不恢复的情况下弹出它的建议,或者在没有加载的情况下移除背梢,或者我们可以看到的任何方式。非常感谢帮助。

在cardView适配器上添加backstack点击:

final FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction();
            transaction.replace(R.id.main_container, new B_1()).addToBackStack(null).commit();

在A,B,C交易之前在MainActivity中弹出backstack:

if(getSupportFragmentManager().getBackStackEntryCount() > 0) {
                fragmentManager.popBackStackImmediate(null, fragmentManager.POP_BACK_STACK_INCLUSIVE);
            }

0 个答案:

没有答案