我想在线性布局中多次添加片段。为此,我使用For循环并将数据传递给片段。每个索引都有不同的数据。我目前的问题是,我只能看到屏幕上的最后一个片段多次,可能是隐藏了顶部片段或任何其他原因。不明白是什么问题。
categoryArrayList = dbHelper.getChannelInfo();
fragmentManager =getSupportFragmentManager();
ft = fragmentManager.beginTransaction();
for (int i = 0; i<categoryArrayList.size(); i++) {
SubFragment frag = new SubFragment();
Bundle bundle = new Bundle();
bundle.putInt("ID", (categoryArrayList.get(i).getChannelCategoryId()));
bundle.putString("categoryName", categoryArrayList.get(i).getChannelName());
frag.setArguments(bundle);
ft.add(R.id.container, frag,"fragment"+i);
}
ft.commit();
}
}
的xml:
<LinearLayout
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="50dp"
android:background="#252424"
android:layout_below="@id/headercontainer"
android:layout_marginLeft="30dp">
答案 0 :(得分:1)
您为每个Bundle
参数使用相同的Fragment
,并且FragmentTransaction
以异步方式发生,因此当它们最终执行时,{{1所有人都阅读相同的论点。
你可能在循环之前有类似的东西:
Fragment
在Bundle bundle = new Bundle();
来电之前,将其移至for
循环内。