在 Android 中,您可以在 FragmentTransaction 中为 Fragment 设置标签。
为什么需要为 Fragment 设置标签?
如果 Fragment 根据其标签更改其行为,这是一种好的做法吗?
最佳答案
fragment 标签可用于避免在 Activity
方向更改时重新创建 Fragment
。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photos_image_pager);
MyFragment fragment;
if (savedInstanceState != null) {
fragment = (MyFragment) getFragmentManager()
.findFragmentByTag("my_fragment_tag");
} else {
fragment = new MyFragment();
fragment.setArguments(getIntent().getExtras());
getFragmentManager()
.beginTransaction()
.add(android.R.id.content, fragment, "my_fragment_tag")
.commit();
}
}
Activity
在方向改变时重新创建,并调用它的 onCreate(...)
方法。如果 Fragment
是在 Activity
被销毁之前创建的,并通过标签添加到 FragmentManager
中,现在可以从 中检索它>FragmentManager
由相同的标签。
有关如何使用它的详细讨论,请参阅:
关于java - fragment 标签的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13509495/