FragmentManager API缺乏

时间:2015-05-31 07:22:58

标签: android android-fragments fragment fragmentmanager

在我看来,FragmentManager API中没有一个非常基本的功能,即清除堆栈,我发布这个问题,因为我想知道它的设计是否差,还是有充分的理由我不这样做但意识到以下几点:

  1. 我偶然发现自己处于需要清理堆栈然后重新开始的情况下,没有正确的方法可以做到这一点,谷歌搜索后我知道的唯一方法就是这个(或者相似):

    while(supportFragmentManager.popBackStackImmediate()); supportFragmentManager.beginTransaction()。replace(R.id.content,freshStartFragment).commit();

  2. 关于这一点的问题是带有动画的事务正在主线程上执行GUI,无缘无故地

    1. 当我遇到问题1时,getBackStackEntryAt似乎很有意义,我认为通过BackStackEntry提供实际交易是合理的,但不幸的是这个类似乎非常冗长

    2. 继续评论2,因为后台堆栈包含事务,我希望他们能得到一个getter,所以我可以编辑它们,例如让它们显示没有动画,这样1中的代码就可以正常工作。

    3. 简而言之,为什么我必须这样做只是为了清理堆叠? FragmentManager设计器有什么好的理由可以排除一个简单的cleanBackStack方法?

      启发我:)

      注意:我的问题不同于Clear back stack using fragments因为我没有问如何(因为有很多帖子有答案),我想问为什么一个简单的基本功能需要在这样的hacky方式?这个hacky解决方案的最大问题(本身也有hacky解决方案)是GUI线程在执行pops时卡住...

0 个答案:

没有答案