【问题标题】:Fragment transaction分片交易
【发布时间】: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


【解决方案1】:

要回答我自己的问题,我似乎从未真正让它发挥作用。我移向了一个 1 个片段屏幕,里面有 2 个线性布局,并在需要时更改了这些布局的可见性。

【讨论】:

    猜你喜欢
    • 2011-07-14
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多