使用AddOnPageChangeListener将页面作为Toa​​st-Message返回

时间:2017-07-05 17:52:58

标签: java android

我正在使用ViewPager在片段之间滑动。 由于不推荐使用onPageSelectedListner()方法,因此我必须使用AddOnPageChangeListener

所以我的代码看起来像这样:

 // Create the adapter that will return a fragment for each of the three
    // primary sections of the activity.
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

    // Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.container);
    mViewPager.setAdapter(mSectionsPagerAdapter);


    mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

问题:我的目的是返回用户所在的页面。比如,当您从第1页滑动到第2页时,会收到一条Toast-Message,告诉您,您在第2页。如果您向前滑动,它会告诉您,您在第3页,依此类推。

但我在OnClickListener中的方法是返回空洞。我怎样才能获得页面位置?

1 个答案:

答案 0 :(得分:1)

使用: -

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {

           Toast.makeText(getApplicationContext(),"You're on page " + String.valueOf(position), Toast.LENGTH_LONG).show();
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

在此,positiononPageSelected所选方法的参数。页面更改时设置此位置。