当前位置: 首页 > 知识库问答 >
问题:

切换片段太快导致:java.lang.IllegalStateException:无活动

宣瀚
2023-03-14

我没有使用查看页面,我调用任何片段事务的唯一地方是单击活动布局中导航栏上的按钮。

当我切换到片段太快(像来回),我得到这个例外:

java.lang.IllegalStateException:无活动

当我点击切换另一个片段时,第一个片段还没有完全加载完毕。我正在使用碎片活动。

有人能对此发表一些见解吗?

我的代码切换片段s:

fragmentManager.beginTransaction()
    .replace(R.id.container, old,
        fragment.getClass().getSimpleName())
    .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit();

编辑:去掉过渡解决了问题,但我想知道是否有一种方法可以在适当的位置完成过渡。我的理论是,当启动另一个片段事务时,转换会延迟片段生命周期,并导致活动为空。

共有1个答案

伏默
2023-03-14

我今天遇到了同样的问题。结果是,我正在缓存我的片段(这是完全有效的),但我很快就删除/添加了它(当仍在制作动画时)

尝试检查:old。isRemoving()调用之前。更换(R.id.container,旧)

true表示它仍在使用中,重新添加它会触发问题。在这种情况下,您应该创建一个新的片段实例。

我的猜测是,我试图重新添加一个片段,而它仍在为其删除设置动画,因此需要两个片段实例。

 类似资料:
  • 我创建了一个带有底部导航栏的活动。我在谷歌上搜索了很多关于它的信息,但现在我不知道如何准确地处理这个问题。之前,当用户点击底部导航时,我刚刚开始了另一个活动,但我认为这不好。 如何在选项卡之间切换?我必须处理碎片吗?那么“setContentView(int layoutResID)”呢?我该怎么做?我很困惑。。。 非常感谢你的帮助——我希望你明白我的意思。

  • 是否可以在android中使用导航抽屉,但我不想更新片段,而是想在活动之间切换,作为我在应用程序中的导航方式。

  • 我不是Android方面的专家,但对片段非常感兴趣。非常感谢您的帮助! 我在我的应用程序中实现了一个导航抽屉。有一个基本抽屉活动和一些片段,用户可以从抽屉菜单中切换。如果我想转移到另一个片段,没有问题,但当我使用意图开始一个新的活动时,它是有效的。如果你看一下我下面的代码,你会发现我使用了两个独立的菜单:一个用于操作栏图标(购物车和搜索),意图在其中完美工作,另一个用于导航抽屉在片段之间跳转。有没

  • 我希望能够使用导航抽屉,并根据导航中的选择在不同片段之间进行更改。 我正在使用Android Studio,基本上我所做的是这样的: 使用内置模板“导航抽屉活动”创建了一个新项目 创建了一个空白片段 然后我更改了onNavigationDrawerItemSelected方法中的一些代码。 我的程序崩溃了,给了我很多我不理解的错误。我做错了什么?

  • 我这么问的原因是因为我多年来一直在专门使用活动,Facebook SDK和Google Maps 2.0迫使我使用片段,现在我想知道与其他实现相比,它们是否本质上“更好”。 如果这个“不具建设性”或“过于开放”,那么答案显然是“不”。但是如果有一些谷歌开发者的文档或博客关于这个确切的主题,那么我想知道它