方向改变时碎片堆叠的行为
Posted
技术标签:
【中文标题】方向改变时碎片堆叠的行为【英文标题】:Behavior of fragments stack upon orientation change 【发布时间】:2020-03-20 12:30:17 【问题描述】:我的活动 A 定义了 androidx.fragment.app.FragmentContainerView
,并在其布局中使用了给定的 navGraph。导航图的起点是片段 F1,它具有导航到片段 F2 的动作(动作只有 id 和目的地)。片段 F2 具有 id 和 popupTo
的操作,指定 F1 的图形 id。在我通过翻转设备更改活动方向之前,这一切都很好。方向改变后,当我执行 F2 动作时,我得到java.lang.IllegalStateException: no current navigation node
为什么会发生这种情况以及如何解决?
更新:导航组件错误。解决方法在这里:<androidx.fragment.app.FragmentContainerView> vs <fragment> as a view for a NavHost
【问题讨论】:
【参考方案1】:这可能是由于方向改变后片段状态发生了变化。您可以在片段的 onCreate() 中使用“setRetainInstance(true)”来保存它们的状态以用于方向更改。
【讨论】:
我没有做任何方向改变,但即使我愿意,保留实例看起来更像是解决方法而不是解决方案。 但是你上面说过你通过翻转设备来改变你的活动方向,之后它会向你显示异常。请确保您已询问或未询问什么。 对不起,我很抱歉以上是关于方向改变时碎片堆叠的行为的主要内容,如果未能解决你的问题,请参考以下文章