Android 方向改变时碎片堆栈的行为
我有一个活动A,它定义了Android 方向改变时碎片堆栈的行为,android,android-navigation,android-jetpack-navigation,Android,Android Navigation,Android Jetpack Navigation,我有一个活动A,它定义了androidx.fragment.app.FragmentContainerView,布局中有给定的导航图。导航图的起点是片段F1,该片段具有导航到片段F2的操作(操作仅具有id和目标)。片段F2具有id为的操作和指定F1图形id的poputo。这一切都很好,直到我通过翻转设备来改变活动方向。方向更改后,当我执行F2操作时,我得到java.lang.IllegalStateException:no current navigation node为什么会发生这种情况以及如
androidx.fragment.app.FragmentContainerView
,布局中有给定的导航图。导航图的起点是片段F1,该片段具有导航到片段F2的操作(操作仅具有id和目标)。片段F2具有id为的操作和指定F1图形id的poputo
。这一切都很好,直到我通过翻转设备来改变活动方向。方向更改后,当我执行F2操作时,我得到java.lang.IllegalStateException:no current navigation node
为什么会发生这种情况以及如何修复
更新:导航组件错误。这里的解决方案:这可能是由于方向改变后碎片状态发生了变化。您可以在片段的onCreate()中使用“setRetainInstance(true)”来保存它们的状态以进行方向更改。我没有做任何方向更改,但即使我做了,保留实例看起来更像是一种解决方案,而不是一种解决方案。但是您在上面说过,您可以通过翻转设备来更改活动方向,之后,它将向您显示异常。请确定你问了什么或没有问什么。对不起,我道歉