【问题标题】: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)

【问题讨论】:

    标签: android android-fragments navigation android-architecture-components


    【解决方案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)
     }
     }
    }
    

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

    【讨论】:

      猜你喜欢
      • 2018-10-22
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 2015-05-08
      相关资源
      最近更新 更多