页码 - viewpager指标库的问题

时间:2013-08-14 07:49:15

标签: android android-viewpager viewpagerindicator

我使用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);

首先滚动时工作,但滚动到第一个时会产生意想不到的结果

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