我创建了一个包含8个片段的ViewPager,这些片段使用相同的xml布局。 但是,我希望不同的片段使用不同的内容。 我需要获取它所有片段的ID,以便我可以将特定内容加载到该片段上。
我试过
extras.putInt(Globals.KEY_CATEGORY_POSITION, position);
fragment.setArguments(extras);
在FragmentPagerAdapter上的getItem(int position)方法。
然后,我在Fragment类中得到片段的位置。当我这样做的时候,当我打印出每个片段的位置时,我从0到7,但是然后它们全部增加到7,所以它们都变成了相同的片段。
有没有其他方法可以获取每个片段的ID?
答案 0 :(得分:3)
这是一个非常好的例子:
创建片段时:
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
然后在片段中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mNum = getArguments() != null ? getArguments().getInt("num") : 1;
}
答案 1 :(得分:0)
将它扔进FragmentPagerAdapter:)
public Fragment getActiveFragment(ViewPager container, int position) {
String name = makeFragmentName(container.getId(), position);
return mFragmentManager.findFragmentByTag(name);
}
private static String makeFragmentName(int viewId, int index) {
return "android:switcher:" + viewId + ":" + index;
}