我在我的应用程序中使用FragmentStatePagerAdapter。 这是我的适配器:
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
List<FeedItem> posts = FeedListFragment.getPosts();
public ScreenSlidePagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int position) {
FeedItem post = posts.get(position);
String url = post.getUrl();
String title = post.getTitle();
String imagUrl = null;
if (post.getType() == FeedItem.ARTICLE_VIEW_TYPE) {
imagUrl = posts.get(position).getArticle().getImageUrl();
}
ScreenSlidePageFragment fragment = new ScreenSlidePageFragment(url, title, imagUrl);
fragment.setPostsFragmentOnItemClickListener(PostActivity.this);
return fragment;
}
@Override
public int getCount() {
return posts.size();
}
}
我需要的是跳转到此适配器中的特定位置,以及跳转到下一个和上一个视图的能力。 我怎样才能做到这一点? 谢谢!
答案 0 :(得分:5)
您可以使用viewPagerInstance.setCurrentItem(int position)
。请记住它基于0的位置(您可以使用0
和adapter.getCount() - 1
之间的值。)
对于下一个和上一个项目使用:
int currentItem = pager.getCurrentItem();
并将+/- 1
添加到currentItem
。当然,您必须检查currentItem+1
是否超出adapter.getCount()
且if currentItem-1
是否大于或等于0
编辑:我使用mPager.arrowScroll(View.FOCUS_LEFT);
效果很好。