我想在线性布局中多次添加片段。为此,我使用了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">
您Bundle
对每个Fragment
的参数使用相同的参数,并且FragmentTransaction
s异步发生,因此当它们最终执行时,Fragment
s都读取相同的参数。
循环之前,您大概有以下内容:
Bundle bundle = new Bundle();
for
在put*()
调用之前,将其移动到循环内部。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句