Android 8.0 片段事务不工作
Android 8.0 fragment transaction not working
在 Android 7.0 的 Galaxy S8+ 上,以下行正确执行以刷新我的片段:
fragmentManager.beginTransaction().detach(myFragment).attach(myFragment).commit();
在另一台 Android 8.0 的 Galaxy S8+ 上,片段似乎根本没有刷新,我必须手动删除片段并重新打开它。这让我抓狂,有没有人有任何为什么 Android 8.0 会这样做以及如何修复?
我不知道为什么会这样,但是如果我将它分成两个调用并且(重要的)使用 commitNow() 而不是 commit(),它会像以前一样工作 API
fragmentManager.beginTransaction().detach(myFragment).commitNow();
fragmentManager.beginTransaction().attach(myFragment).commitNow();
如果有人看到更好的解决方案,请告诉我。出于某种原因,我并没有认真考虑这个修复程序,但我会使用它,除非有人告诉我为什么不应该这样做!
在 Android 7.0 的 Galaxy S8+ 上,以下行正确执行以刷新我的片段:
fragmentManager.beginTransaction().detach(myFragment).attach(myFragment).commit();
在另一台 Android 8.0 的 Galaxy S8+ 上,片段似乎根本没有刷新,我必须手动删除片段并重新打开它。这让我抓狂,有没有人有任何为什么 Android 8.0 会这样做以及如何修复?
我不知道为什么会这样,但是如果我将它分成两个调用并且(重要的)使用 commitNow() 而不是 commit(),它会像以前一样工作 API
fragmentManager.beginTransaction().detach(myFragment).commitNow();
fragmentManager.beginTransaction().attach(myFragment).commitNow();
如果有人看到更好的解决方案,请告诉我。出于某种原因,我并没有认真考虑这个修复程序,但我会使用它,除非有人告诉我为什么不应该这样做!