onPageSelected isn't triggered when calling setCurrentItem(0)

后端 未结 10 1739
梦如初夏
梦如初夏 2020-12-22 20:13

I have an Activity with a ViewPager which displays a bunch of pictures. When it starts the ViewPager\'s position is set based on what the user selected in a previous Activit

10条回答
  •  失恋的感觉
    2020-12-22 20:21

    The following solution seems to work for me. i.e. I get a callback at position 0 when the viewpager is first loaded and for all subsequent selections either from user scrolling or a setCurrentItem(x) call. I haven't observed any undesired behaviour.

    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                @Override
                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    
                    if (positionOffsetPixels == 0) {
                     //Do something on selected page at position
                    }
    
                }
    
                @Override
                public void onPageSelected(int position) {}
    
                @Override
                public void onPageScrollStateChanged(int state) {}
            });
    

提交回复
热议问题