我没有使用ViewPager
,而且我正在调用任何Fragment
事务的唯一地方是点击活动布局中导航栏上的按钮。切换片段太快会导致:java.lang.IllegalStateException:No activity
当我太迅速切换到片段(如来回),我得到这个异常:
java.lang.IllegalStateException:没有活动
这似乎是,当我点击切换另一个Fragment
,而第一个尚未完全加载完成。我正在使用FragmentActivity
。
任何人都可以对此有所了解吗?
我的代码切换Fragment
S:
fragmentManager.beginTransaction()
.replace(R.id.container, old,
fragment.getClass().getSimpleName())
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit();
编辑: 取出过渡解决了这个问题,但我不知道是否有一种方法,在地方过渡要做到这一点。我的理论是,转换会延迟片段生命周期,并在另一个片段事务启动时导致activity为null。
你看过https://stackoverflow.com/a/17131382/603270 https://stackoverflow.com/a/15656428/603270? – shkschneider
@shkschneider我已经看过这些。显然,这是一个新的支持库的错误,但我没有在这里使用小孩片段管理器。这只是一个基本的应用程序,可通过活动中的按钮访问4个屏幕。 – sihrc
我认为你的问题与获取onAttach上下文有关,你是否试图在以后获取上下文?例如onActivityCreated – Rarw