我使用viewpager显示7页。我也使用viewpagerindicator lib来获取视图中的页面,因为这些页面在viewpager中。
当我在viewpager中滚动页面时,我想显示你在第1页,第2页的用户....分别。当他在viewpager中滚动页面时。
我正在使用pagedapter的getcurrentitem()来获取我所在的页面..但它不会给我正确的结果。
我做错了什么吗? 如何在viewpager中计算确切的页码?
我试过两种方法。 首先 scScreens = new Fragment[mSessionManager.getPosScreens()];
@Override
public Fragment getItem(int position) {
return scScreens[position];
}
在每个片段中,我写了页码。因此,如果相应的片段显示更改页面编号。 (非常糟糕的方式)我必须创建7个类(最大页面)。
第二
pagestextview.setText(getCurrentItem()+1);
首先滚动时工作,但滚动到第一个时会产生意想不到的结果
答案 0 :(得分:0)
我可以推荐FragmentStateAdapter,因为它可以很好地处理片段的创建/销毁。
mViewPager = new ViewPager(this);
mViewPager.setId(R.id.viewPager);
setContentView(mViewPager);
final FragmentManager fm = getSupportFragmentManager();
mViewPager.setAdapter(new FragmentStatePagerAdapter(fm) {
@Override
public int getCount() {
return mContactList.size();
}
@Override
public Fragment getItem(int pos) {
Contact mContact = mContactList.get(pos);
int mCurrentPosition = mContact.getPosition();
return ContactDetailsFragment.newInstance(mCurrentPosition);
}
});
//loads the proper fragment on its meant-to-be position into the ViewPager
mViewPager.setCurrentItem(position);