片段标签的使用

Mah*_*sam 23 android android-fragments

在Android中,您可以在FragmentTransaction中为Fragment设置标记.

为什么我需要为片段设置标签?

如果Fragment根据其标记更改其行为,这是一种好习惯吗?

Gun*_*son 31

它可用于避免重新创建Fragmenton Activity方向更改.

@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(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

Activity与方向的变化是重新创建,它的onCreate(...)方法被调用.如果它Fragment是在Activity销毁之前创建的并且已添加到FragmentManager带有标记的内容中,则现在可以FragmentManager通过相同的标记检索它.

有关如何使用它的更长时间的讨论,请参阅: