2

我在我的应用程序中使用 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();
    }
}

我需要的是跳转到此适配器中的特定位置以及跳转到下一个和上一个视图的能力。我怎样才能做到这一点?谢谢!

4

1 回答 1

5

你可以使用viewPagerInstance.setCurrentItem(int position). 请记住它基于 0 的位置(您可以使用 和 之间的值0adapter.getCount() - 1

对于下一个和上一个项目使用:

int currentItem = pager.getCurrentItem();

并添加+/- 1currentItem. 当然,您必须检查是否currentItem+1不超过adapter.getCount()并且if currentItem-1大于或等于 0

编辑:我用mPager.arrowScroll(View.FOCUS_LEFT);它工作得很好。

于 2013-07-23T10:30:59.970 回答