不推荐使用viewpager setonpagechangelistener

Jay*_*ala 254 android android-viewpager

今天我正试图设置ViewPager.setOnPageChangeListener,我发现它已经被弃用了.

Jay*_*ala 570

找到我自己想回答的答案.我,

ViewPager.setOnPageChangeListener现已弃用.需要ViewPager.addOnPageChangeListener改用.

例如,

ViewPager.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) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

您可以在Google Developer网站上找到此信息.

  • 我认为提到clearOnPageChangeListeners()是值得的,所以当使用addOnPageChangeListener()时,不会有多个侦听器. (7认同)
  • 看来Eclipse甚至找不到方法addOnPageChangeListener,请问这是什么支持库? (2认同)
  • 这令人困惑.如果他们保持相同的语法并简单地用更新版本替换此调用或其他内容将会很好. (2认同)

小智 40

使用ViewPager.addOnPageChangeListener而不是ViewPager.setOnPageChangeListener.


kin*_*iva 40

这对我有用:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {       
        conterchange.setText(""+(1+position));
    }

    @Override
    public void onPageSelected(int position) {
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }
});
Run Code Online (Sandbox Code Playgroud)


Noe*_*lia 9

以防有人需要kotlin的解决方案:

viewPager.addOnPageChangeListener (object: ViewPager.OnPageChangeListener {
        override fun onPageScrollStateChanged(state: Int) {
            TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
        }

        override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
            TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
        }

        override fun onPageSelected(position: Int) {
            TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
        }

    })
Run Code Online (Sandbox Code Playgroud)


Sho*_*que 7

您可以通过SimpleOnPageChangeListener 以下代码实现:

private Fragment page = null;
/** Defining a listener for pageChange */
        ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener(){
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);

                page = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager_selectPhotos + ":" + position);

                System.out.println(page);
                switch (position) {
                case 0:

                    break;
                case 1:

                    break;

                default:
                    break;
                }
            }
        };
        /** Setting the pageChange listener to the viewPager */
        _pager.setOnPageChangeListener(pageChangeListener);
Run Code Online (Sandbox Code Playgroud)