java - fragment 标签的使用

标签 java android kotlin android-fragments

在 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/

相关文章:

android - android ListView 中的谷歌地图加载问题

java - 如何使用 hibernate 4.1 获取唯一结果集

java - 在 Kotlin 中声明常量的所有方式之间的性能差异是什么?

android - 您可以在 Android 的自定义 View 中使用 SensorEventListener 吗?

android - 应用恢复后单例对象变为空

android - Robolectric 测试和 LiveData

java - Spring——跳过此测试的飞路

java - 退出 Activity 时终止线程(android)

java - 向另一个微服务请求微服务

应用程序管理器中的android应用程序标题