我知道有一些关于无限分页的问题,但是我仍然很难使它们中的任何一个都起作用。 (我在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);
}
}