LoopViewPager

An android ViewPager that allowing infinite scrolling.

Rewrite the ViewPager code that let it support infinite scrolling.

Usage

To use it simply change <android.support.v4.view.ViewPager> to <com.xs.view.LoopViewPager>

It support PagerAdapter and FragmentPagerAdapter you do not need to change any code.

The only thing you need to know that the position is not real position.

For example, is the data size if 4, and the page limit is 1, and the four pa . * at first, the index [-1, 0, 1] page will create * after fliping left 3 pages, the index [2, 3, 4] page will create. * real postion should be mapping realPosition = (count + position%count) % count, so index -1 will create the fourth page, and index 4 will create first page.

Some Demo Code

    private static final String[] CONTENT = new String[] {"A", "B", "C", "D"};
    FragmentPagerAdapter adapter = new TestAdapter(getSupportFragmentManager());

    LoopViewPager mLoopViewPager = (LoopViewPager) findViewById(R.id.loop_viewpager);
    mLoopViewPager.setAdapter(adapter);
    mLoopViewPager.setLoopEnable(true);

    class TestAdapter extends FragmentPagerAdapter {

    public TestAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        position = (CONTENT.length + position%CONTENT.length)%CONTENT.length;
        ListViewFragment fragment = new ListViewFragment(CONTENT[position]);
        return fragment;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return CONTENT[position % CONTENT.length].toUpperCase();
    }

    @Override
    public int getCount() {
        return CONTENT.length;
    }

}

Demo

you can see the demo in src/com/xs/demo/LoopViewPagerDemo