在Google I/O 2017的一次讲座中(此处),演讲者介绍了一个新的API用于
演讲者解释道:
setReorderingAllowed()
,它可以在FragmentTransaction
上调用。演讲者解释道:
并展示了以下代码示例:它允许所有执行一次性完成,而不改变您的片段状态,然后在最后我们提升所有需要提升的片段并拆除所有需要拆除的片段...所以我们可以为您优化。
fragmentManager.beginTransaction()
.replace(R.id.container, fragment1)
.addToBackStack("state1")
.setReorderingAllowed(true)
.commit();
fragmentManager.beginTransaction()
.replace(R.id.container, fragment2)
.addToBackStack("state2")
.setReorderingAllowed(true)
.commit();
如果单独提交FragmentTransaction
,是否会使得.setReorderingAllowed(true)
的优化失效?因为它们是分别发生的。
由于这是一个刚刚公布的API,目前似乎还没有可用的文档。
setAllowOptimization
在API级别26.0.0-beta2中已被弃用,并更名为setReorderingAllowed(boolean)
。现在文档也已经可用。 - Wahib Ul Haq