onClick on ViewPager not triggered

后端 未结 8 1197
有刺的猬
有刺的猬 2020-11-28 04:49

I set a click listener on a ViewPager, but the onClick event is never called. I guess the touch event detection of the ViewPager is interfering, bu

8条回答
  •  情书的邮戳
    2020-11-28 05:27

    The proper way to do this is to implement ViewPager.OnPageChangeListener in your Activity. Here is an example:

    public class MyActivity implements ViewPager.OnPageChangeListener
    {
    
        private ViewPager mViewPager;
        private int mLastPagePosition = -1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            ...
    
            mViewPager = (ViewPager) findViewById(R.id.viewpager);
            mViewPager.addOnPageChangeListener(this);
    
            ...
        }
    
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            if (mLastPagePosition != position) {
                // the selected page is changed
                mLastPagePosition = position;
            }
        }
    
        @Override
        public void onPageSelected(int position) {
            if (mLastPagePosition != position) {
                // the selected page is changed
                mLastPagePosition = position;
            }
        }
    
        @Override
        public void onPageScrollStateChanged(int state) {
        }
    
    }
    

提交回复
热议问题