android - 添加同一 fragment 的多个实例

标签 android fragment

我正在尝试将同一 fragment 的多个实例添加到一个 Activity 中。示例代码是

    FragmentManager fm = getSupportFragmentManager();
    Fragment fragment = fm.findFragmentById(R.id.fragment_content);

    FragmentTransaction ft = fm.beginTransaction();

    for (int x = 1; x < 5; x = x + 1) {
        Log.i("frag","x="+x);
        ft.add(R.id.fragment_content, new SpecimenFragment(),"x_"+x);           
    }

    ft.commit();

当 Activity 运行时,只添加了一个 fragment 实例 - 为什么?

有关信息, fragment 被插入到 Activity 的 XML 布局中,并且 代码中引用的R.id.fragment_content定义为:

<FrameLayout
    android:id="@+id/fragment_content"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

最佳答案

问题似乎是使用 FrameLayout 作为 fragment 的容器。我将其更改为

<LinearLayout
    android:id="@+id/fragment_content"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" />

现在可以正常工作了。

关于android - 添加同一 fragment 的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349816/

相关文章:

java - 在“选项”菜单上切换 Wifi 状态

android - 在 Fragment 中使用 ViewModelFactory

android - 在 Android fragment 中使用 onBackPressed()

android - RxJava2 - 将多个 Singles 发出的结果组合成一个 Map

java - 隐藏 ActionBar(定时)和动画 View

android - 如何检查 SwitchPreference 的当前状态?

android - 如何在创建时设置选定的选项卡作业

java - 在 Retrofit 中将表单数据发送到服务器

java - 通过 Retrofit 为 FragmentPagerAdapter 中的 Fragment 获取不同的数据,用于几个 tablayout 选项卡

android - 应用程序注册