对所有的Fragments
使用Fragment.setRetainInstance()
以便摆脱处理Fragment
的娱乐,保存实例状态等是一种好习惯吗?为什么不?用户Fragment.setRetainInstance不处理娱乐是否是一个好习惯?
回答
是的,如果他们必须保留配置更改,您可以将它用于不在回栈中的碎片。它只是让事情变得更简单。
这并不总是好的,没有。通过保留实例,您告诉'您的旧Android可以给您一个完全相同的Fragment
实例,即从未调用片段的onDestroy
,而是在onAttach(ed)和onDetach(ed)上。
通常情况下,您需要重新流动视图以利用不同屏幕比例作为方向更改的结果(例如),并让您的片段保留其状态将意味着框架不会尝试使用例如,如果以肖像模式启动,您的“风景友好”视图。
onRetainInstance
的影响是微妙的,它不是银弹。谨慎操作。
我们如何保留维护在后端堆栈中的碎片的配置更改。因为我们不能使用'setRetainInstance(true)' – Dory 2014-04-04 13:22:16
这是不正确的,即使你在片段上调用了'setRetainInstance(true)',它的'onCreateView()'方法也会被再次调用,并且因此它会再次被布局 – nbarraille 2015-08-07 03:50:09
刚刚重新确认了行为,我可以看到@nbarraille指的是什么,以前当我在2012年编写这个答案的时候,如果你在onCreateView下有两个布局,在不同的资源限定符-port或-land下,那么通过使用setRetainInstance(true)将意味着起始布局将在屏幕旋转中重复使用。这似乎不再是这种情况了。请放心,以前此调用主要存在一些细微问题;请参见http://go.ie)。 /问题/ 10456077/NullPointerException异常功能于fragmentmanager / – OceanLife 2015-08-07 12:30:41
- 1. 过度依赖预处理器是否是一个坏习惯?
- 2. 为句柄写一个getter是否是一个好习惯?
- 3. 是否有娱乐指南?
- 4. 在$角度使用$ parent是否是一个好习惯?
- 5. 使用float来定位元素是否是一个好习惯?
- 6. 使用active_model_serializer和Jbuilder是否是一个好习惯?
- 7. 这是一个很好的习惯吗?
- 8. Object.create({}):这是一个好习惯吗?
- 9. PhpUnit是一个很好的习惯吗?
- 10. 传递Ninject内核是否是一个好习惯?
- 11. 在WPF(MVVM)中建立Model是否是一个好习惯?
- 12. 构建集合缓存是否是一个好习惯?
- 13. 扩展Struts框架的FilterDispatcher是否是一个好习惯?
- 14. 从PHP/Mysql函数返回HTML是否是一个好习惯?
- 15. 在ThreadPoolExecutor中设置allowCoreThreadTimeOut()是否是一个好习惯?
- 16. 在python中制作嵌套类是否是一个好习惯?
- 17. 重写ServletContextListener的实现是否是一个好习惯?
- 18. 修改html id是否是一个好习惯?
- 19. 为CQRS实现打包Masstransit是否是一个好习惯?
- 20. 延长zf2控制器两次是否是一个好习惯?
- 21. 扩展NSError是否是一个好习惯
- 22. 窗口是娱乐
- 23. 总是等待任务完成是否是一种好习惯?
- 24. 在另一个线程中使用线程是否是一个好习惯?
- 25. 让一个setter返回一个bool是否是一个好习惯?
- 26. 锁定一个线程是否是一个很好的习惯,以便在winforms中进行事务处理?
- 27. 继承UIViewController的子类是否是一种好习惯?
- 28. 抑制警告是否是一种好习惯?
- 29. 从函数中打印bool值是否是一种好习惯?
- 30. 是否将代码封装成闭包是个好习惯?
我们如何保留在堆栈中维护的片段的配置更改。因为我们不能使用'setRetainInstance(true)' – Dory 2014-04-04 13:20:15