我知道有一些关于无限分页的问题,但是我仍然很难使它们中的任何一个都起作用。 (我在Android Studio中工作)

我正在尝试从https://github.com/antonyt/InfiniteViewPager启动并运行InfiniteViewPager。

我正在尝试使其正常工作,以便能够在4页/片段(A,B,C,D)中滑动,并具有在D上向右滑动以返回到A以及在A上向左滑动以返回的功能。到D。

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

但是,我被困在需要用InfinitePagerAdapter包装现有的PagerAdapter的地方。

这是我的代码:

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类中提取它。另外,还有什么我需要添加/更改才能使它正常工作的吗?

最佳答案

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

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);

    }
}

07-25 22:25