首先,我有一个片段列表
icons.add(new Home()));
icons.add(new NewsFragment()));
for (int i=0; i<gs.pages.size(); i++) {
SchoolPg page = gs.pages.get(i);
if (page.page_parent_id.equals("0")) {
icons.add(new PageFragment());
}
}
icons.add(new InfoFragment());
正如你所看到的,第一个是Home,然后是News Fragment,然后是Page Fragment列表,最后一个是Info Fragment。
问题是,在get Item中,当我更改为视图寻呼机位置1时,它应该是新闻片段,但它会转到页面片段,为什么以及如何修复它?感谢
public class SampleFragmentPagerAdapter extends FragmentPagerAdapter {
public SampleFragmentPagerAdapter(FragmentManager fm, Context context) {
super(fm);
}
@Override
public int getCount() {
return icons.size();
}
@Override
public Fragment getItem(int position) {
return icons.get(position).frag;
}
@Override
public CharSequence getPageTitle(int position) {
return null;
}
}
更新
如果我选择位置2并选择位置1,它可以工作, 但是,如果我选择除选择1之外的其他位置,则会失败
发现它运行了两次
当我点击位置1时, 它首先运行位置1 - 打开NewsFragment 但同时运行位置2 - 打开PageFragment
答案 0 :(得分:1)
您的Fragment
将按照以下方式排列:
位置0: NewsFragment
位置1: PageFragment
即可。 。 。 强>
职位(n-2): PageFragment
职位(n-1): InfoFragment
其中n = icons.size();
像icons
这样的数组仍然是从索引0开始排序的,这是C
天的遗物。希望你知道!