【发布时间】:2016-09-03 22:06:36
【问题描述】:
我有两个片段,我根据当前用户状态来回更改。我在下面的代码中使用了以下代码,它在几乎一直使用该应用程序时效果很好。我唯一一次强制关闭是当我注销用户,重新登录,用户更改他们的状态,然后我得到一个“java.lang.IllegalStateException:活动已被破坏”。错误指向代码中的最后一行,但我仍然很困惑为什么它只发生在那一次。
FrameLayout fLayout = (FrameLayout) rootView.findViewById(R.id.frameLayoutNC);
fLayout.removeAllViews();
android.support.v4.app.FragmentManager fragmentManager = getChildFragmentManager();
android.support.v4.app.FragmentTransaction ft = fragmentManager.beginTransaction();
CCF newFragment = new CCF();
ft.replace(R.id.frameLayoutNotCharging, newFragment);
ft.setTransition(android.support.v4.app.FragmentTransaction.TRANSIT_NONE);
ft.addToBackStack(null);
ft.commitAllowingStateLoss();
【问题讨论】:
-
什么类和方法包含这段代码?
-
请分享您在其中转换片段的活动类以及您的堆栈跟踪
-
所以我有一个标签栏,其中一个标签是fragment1。当用户状态发生变化时,我调用我在上面发布的代码,将其从片段 1 切换到片段 2。选项卡本身实际上并没有改变,它只是改变了单个选项卡上的视图。这两个类都扩展了 Fragment。该类本身只是进行了一堆firebase db解析,因此那里实际上没有任何东西。会有比我实施的更好的方法吗?
-
仔细看看this,它会对你有所帮助。
标签: android android-fragments fragmenttransaction fragmentmanager