【发布时间】:2014-12-25 07:28:36
【问题描述】:
在我的一个应用程序中,我需要在 ViewPager 的两侧添加 Fragments。首先,我将获得 5 个提要的常量,我的 ViewPager 将在索引 2 处显示提要,即我当前显示的片段将包含索引 2 处的数据。所以总的来说,我的 ViewPager 将在开始时显示 5 个提要的中心,并且我只需像这样将 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();
现在的问题是,如果我只在右侧添加提要,即在提要列表的末尾,一切正常,但是当我在零索引处添加提要时,问题就来了。我的适配器没有显示已添加到零位置的新提要,而是重复现有提要之一,并且在右侧但不在左侧重复。我已经尝试了一切,但没有什么是正确的。这是我的适配器代码。
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);的代码 -
我认为这与这个问题没有任何关系
-
我也面临同样的问题。
标签: android android-fragments android-viewpager fragmentstatepageradapter