使用instantiate()
方法加载新Fragments
是否有任何(dis-)优势?或者只是个人品味?
Bundle args = new Bundle();
args.puString(...);
args....
Fragment newFragment = Fragment.instantiate(this, fragmentName, args);
VS
//...
NewFragment instance = NewFragment.newInstance(String param1, String param2);
//....
public static NewFragment newInstance(String param1, String param2) {
NewFragment fragment = new NewFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
答案 0 :(得分:1)
如果你有必须提供给Fragment的参数,最好使用newInstance()
,因为很容易看到需要哪些参数,你不必担心创建一个包并知道哪些键是使用。
如果您的Fragment没有参数,那么只需完全避免它并使用默认构造函数,即new MyFragment()
。