В одном из моих приложений мне нужно добавить фрагменты с обеих сторон ViewPager. Прежде всего, я получу константу из 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);
- person mmlooloo   schedule 25.12.2014