2

我已经看到了创建片段的不同方法。有人可以帮我弄清楚这些方法之间的区别是什么,什么是最好的方法以及何时使用哪种方法。

  1. new MyFragment()我自己使用它,因为它对我来说似乎很自然。
  2. MyFragment.instantiate(Context context, String fname, Bundle args)这看起来像是创建片段的自定义静态方法,但我从未见过它使用过。
  3. My.Fragment.newInstance()这个在 Android 开发者示例中。

每个选项的目的是什么?

4

1 回答 1

4

最大的区别是何时使用每个样本:

1- 每次调用时创建一个新的片段对象。

2- 与调用空构造函数相同,但是,如果将片段设置为 setRetainInstance(true),则如果使用空构造函数,这将不起作用。

3- My.Fragment.newInstance(),从静态片段中获取单个实例的方法,如果你有一个静态类扩展片段,你可以创建一个方法来返回一个新片段或当前片段,它的单例模式。

4- Inflate from xml,和调用空的contructor一样,Android FrameWork负责对view的附加,但是实例会被保持在hole activity的生命周期中,需要更多的内存并且不能被多次重用。

于 2012-09-28T09:20:48.783 回答