我已经看到了创建片段的不同方法。有人可以告诉我这些方法之间的区别是什么,最好的方式和何时使用它。
new MyFragment()
我自己用这个,因为这对我来说似乎很自然。MyFragment.instantiate(Context context, String fname, Bundle args)
这看起来像是一个自定义静态方法来创建片段,但我从未见过它。My.Fragment.newInstance()
这个是Android开发者示例。每个选项的目的是什么?
答案 0 :(得分:4)
最大的区别是何时使用每个样本:
1-每次调用时创建一个新的片段对象。
2-与调用空构造函数相同,但是,如果将片段设置为setRetainInstance(true),则在使用空构造函数时,这将不起作用。
3- My.Fragment.newInstance(),从静态片段中获取单个实例的方法,如果你有一个静态类扩展片段,你可以创建一个Method来返回一个新片段或当前片段,它是单身模式。
从xml中膨胀,与调用空构造函数相同,Android FrameWork负责视图的附件,但实例将与孔活动生命周期保持一致,需要更多内存并且不能多次重用。