【问题标题】:Issue while switching rapidly between Fragments在 Fragment 之间快速切换时出现问题
【发布时间】:2011-12-21 12:35:06
【问题描述】:

在 LinearLayout 中,我有一个 FragmentContainer,它下面是一个包含多个 RadioButtons 的 RadioGroup。当检查更改时,我将用不同的片段替换容器中的当前片段。如果检查进行得很慢,则切换会正常进行。

现在考虑
RadioButtonA => 在检查时将容器替换为 FragmentA
RadioButtonB => 检查时用 FragmentB 替换容器

现在容器有 FragmentA
如果我更改为 RadioButtonA->RadioButtonB 它 用 FragmentB 替换 FragmentA
如果我立即从 RadioButtonB->RadioButtonA 切换 它应该用 FragmentA 替换 FragmentB

但我得到异常说:
java.lang.IllegalStateException:已添加片段:FragmentA

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    它现在工作正常。问题是在替换片段后我正在设置转换

    fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    

    我假设当我切换到 FragmentB 时,trasition(对于 FragmentA)仍会运行。

    在转换完成之前,FragmentA 不会从 backstack 中删除。此时如果再次尝试添加FragmentA,将会崩溃,因为FragmentA还没有被移除

    所以不要设置任何过渡

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多