在我的一个应用程序中,我需要在ViewPager的两侧添加Fragments。首先,我会获取5个feeds的常量,我的ViewPager将显示索引为2的feed,即当前显示的Fragment将包含索引为2的数据。因此,总体上,我的ViewPager将在开始时显示5个feeds的中心,并且我通过设置ViewPager当前项为2来实现了这一点,就像这样:
当我从中心位置向右滑动时,我会将新的信息源添加到最后,就像这样。
viewPager.setCurrentItem(2);
现在用户可以在两个方向上滑动。当他从中间位置向左滑动时,我将查找下一条反馈,即从服务器获取反馈并将其添加到我的ViewPager的零索引处,如下所示:
feedsList.add(0, modelClassObject); // feedsList will contain all feeds and has been used by adapter to show data in fragments.
adapter.notifyDataSetChanged();
当我从中心位置向右滑动时,我会将新的信息源添加到最后,就像这样。
feedsList.add(modelClassObject);
adapter.notifyDataSetChanged();
现在问题是,如果我只在feedsList的末尾添加feed,一切都正常,但是当我在零索引处添加feed时,问题就出现了。我的适配器没有显示已添加到零位置的新feed,而是重复了其中一个现有的feed,而且还在右侧而不是左侧。我已经尝试了一切,但是没有什么是正确的。以下是我的适配器代码。
private class HorizontalPagerAdapter extends FragmentStatePagerAdapter {
public HorizontalPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int arg0) {
return FeedUserProfileFragment.newInstance(feedsList.get(arg0),
arg0);
}
@Override
public int getCount() {
return feedsList.size();
}
}
我也使用过这个
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
但是没有结果... :(
所以我急需帮助,如果有人之前已经做过并遇到了同样的问题,请告诉我我做错了什么。我只需要在我的ViewPager的零索引处添加片段。
FeedUserProfileFragment.newInstance(feedsList.get(arg0),arg0);
。 - mmlooloo