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

Android 切换片段过快导致:java.lang.IllegalStateException:无活动,android,android-fragments,Android,Android Fragments,我没有使用查看页面,我调用任何片段事务的唯一地方是单击活动布局中导航栏上的按钮 当我太快地切换到片段(如来回切换)时,会出现以下异常: java.lang.IllegalStateException:无活动 这似乎是当我点击切换另一个片段时,而第一个片段还没有完全完成加载。我正在使用一个片段活动 有人能对这一点有一些见解吗 切换Fragments的我的代码: fragmentManager.beginTransaction() .replace(R.id.container, old,

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

当我太快地切换到片段(如来回切换)时,会出现以下异常:

java.lang.IllegalStateException:无活动

这似乎是当我点击切换另一个
片段时,而第一个片段还没有完全完成加载。我正在使用一个
片段活动

有人能对这一点有一些见解吗

切换
Fragment
s的我的代码:

fragmentManager.beginTransaction()
    .replace(R.id.container, old,
        fragment.getClass().getSimpleName())
    .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit();
编辑:
取消转换解决了问题,但我想知道是否有一种方法可以在转换到位的情况下实现这一点。我的理论是,当启动另一个片段事务时,转换延迟了片段生命周期并导致活动为空。

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

在调用
之前,请尝试检查:
old.isRemoving()
。replace(R.id.container,old)

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


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

您查看了吗?@shkschneider我查看了这些实例。显然,这是新支持库的一个bug,但我这里不使用子片段管理器。这只是一个基本的应用程序,可以通过活动中的按钮访问4个屏幕。我认为您的问题与获取上下文有关,您是否尝试稍后获取上下文?e、 我从片段的onAttach回调中获取我的活动引用。这发生在片段被添加之前。该异常是由片段管理器引发的。@sihrc如果这是一个支持库错误,则是错误的。有支持你假设的链接吗?