忽略导航()调用

Posted

技术标签:

【中文标题】忽略导航()调用【英文标题】:Ignoring navigate() call 【发布时间】:2019-05-01 17:02:43 【问题描述】:

我在我的一个应用程序中使用新的 android Navigation Framework。 Application 的目的是充当启动器。

有时当我尝试更改片段(使用导航控制器导航)时,它不会更改片段而是记录

Ignoring navigate() call: FragmentManager has already saved its state

我知道之前有人问过这个问题Ignoring navigate() call: FragmentManager has already saved its state 但它没有解决方案。

我正在使用以下代码进行导航:

Navigation.findNavController(view).navigate(R.id.action_next, bundle)

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,在我的情况下,我试图在 Mopub 广告回调 onInterstitialDismissed 中使用 navigate(),并且正在获取此信息。

我在这种情况下使用 LiveData 的解决方案如下:

 private var dismissState = MutableLiveData<Int>(0)
 mMobupInterStitialAd?.interstitialAdListener = object : MoPubInterstitial.InterstitialAdListener 
 override fun onInterstitialDismissed() 

 dismissState.value=1
 
 
override fun onViewCreated() 
 dismissState.observe(viewLifecycleOwner) 
 if(it == 1) 
 findNavController.navigate(R.id.fragmentAtoFragmentB)
 
 

这就是我解决问题的方法。

【讨论】:

以上是关于忽略导航()调用的主要内容,如果未能解决你的问题,请参考以下文章

JSON 序列化程序如何忽略导航属性?

使用导航弹出窗口时忽略Webstorm中的node_modules

f:viewAction 被忽略,当 commandButton 导航到页面时

iOS SwiftUI:ScrollView 忽略顶部安全区域

忽略 navigate() 调用:FragmentManager 已经保存了它的状态

网页导航