让 InfiniteViewPager 工作

Getting InfiniteViewPager to Work

我知道有几个关于无限分页的问题,但我仍然无法解决其中的任何问题。 (我在 Android 工作室工作)

我正在尝试从 https://github.com/antonyt/InfiniteViewPager 到 运行 获取 InfiniteViewPager。

我正在尝试让它工作,以便我能够滑动 4 pages/fragments(A、B、C、D),并具有在 D 上向右滑动到 return 的功能到 A,然后在 A 上向左滑动到 return 到 D。

我导入了 InfinitePagerAdapter 和 InfiniteViewPager Java 类,并将 InfiniteViewPager 添加到我的 activity_main.xml 文件中。

但是,我在需要的地方卡住了 "Wrap your existing PagerAdapter with the InfinitePagerAdapter"。

这是我的代码:

public class MainActivity extends AppCompatActivity {

    PagerAdapter mPagerAdapter;
    ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mPagerAdapter = new PagerAdapter(getSupportFragmentManager());
        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mPagerAdapter);
        //Cannot resolve symbol adapter
        PagerAdapter wrappedAdapter = new InfinitePagerAdapter(adapter);
        mViewPager.setAdapter(wrappedAdapter);

        mViewPager.setOffscreenPageLimit(5);
    }

    public class PagerAdapter extends FragmentStatePagerAdapter {

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

        @Override
        public Fragment getItem(int position) {
            //getItem is called to instantiate the fragment for the given page.
            switch (position) {

                default:
                    return Fragment1.newInstance();
                case 1:
                    return Fragment2.newInstance();
                case 2:
                    return Fragment3.newInstance();
                case 3:
                    return Fragment4.newInstance();
            }
        }

        @Override
        public int getCount() {
            // Show number of total pages.
            return 4;
        }
    }
}

我不确定我应该用什么替换 adapter,或者是否应该从另一个 Java 类 中删除它。另外还有什么我需要 add/change 才能让它工作吗?

在对演示进行了一些修改后,我已经开始工作了 - 代码如下:

public class MainActivity extends FragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        PagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager()) {

            @Override
            public int getCount() {
                return 4;
            }

            @Override
            public Fragment getItem(int position) {
                final ArrayList<Fragment> fragmentPosition = new ArrayList<>();
                fragmentPosition.add(new Fragment1());
                fragmentPosition.add(new Fragment2());
                fragmentPosition.add(new Fragment3());
                fragmentPosition.add(new Fragment4());
                Fragment fragment = fragmentPosition.get(position);
                Bundle args = new Bundle();
                fragment.setArguments(args);
                return fragment;
            }
        };

        // wrap pager to provide infinite paging with wrap-around
        PagerAdapter wrappedAdapter = new InfinitePagerAdapter(adapter);

        // actually an InfiniteViewPager
        ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
        viewPager.setAdapter(wrappedAdapter);

    }
}