Android 8.0片段事务无法正常工作

时间:2018-04-05 20:20:49

标签: android-8.0-oreo

在使用Android 7.0的Galaxy S8 +上,以下行正确执行以刷新我的片段:

fragmentManager.beginTransaction().detach(myFragment).attach(myFragment).commit();

在另一款搭载Android 8.0的Galaxy S8 +上,片段似乎根本没有刷新,我必须手动删除片段并重新打开它......这让我疯狂,让任何人都知道为什么Android 8.0正在做这个以及如何解决?

1 个答案:

答案 0 :(得分:0)

我不知道为什么会这样,但是如果我将其分解为两个调用并且(重要)使用commitNow()而不是commit(),它就像以前的API一样工作

fragmentManager.beginTransaction().detach(myFragment).commitNow();
fragmentManager.beginTransaction().attach(myFragment).commitNow();

如果有人看到更好的解决方案,请告诉我。出于某些原因,我不会因为这个问题而坐在我的脑海中,但除非有人告诉我为什么我不应该这样做,否则我会去使用它!