ViewPager 的 点击事件冲突

本文介绍了一个自定义的ClickableViewPager类,解决了无限循环ViewPager在最后一张图片点击时响应慢的问题。通过添加手势检测器和监听器,实现了快速跳转到photoView的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        最近做项目的时候 , 有一个看图片的ViewPager(是无限循环的) , 点击图片要跳到photoView . 发现viewpager最后一张图片点击的时候好久才跳到photoView里 . google一下 , 发现解决问题了!

        到后来发现把无限循环的值改为100 , 就不会出现这种要等许久才跳到photoView里 . 


public class ClickableViewPager extends ViewPager {

    private OnItemClickListener mOnItemClickListener;

    public ClickableViewPager(Context context) {
        super(context);

        setup();
    }

    public ClickableViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);

        setup();
    }

    private void setup() {
        final GestureDetector tapGestureDetector = new    GestureDetector(getContext(), new TapGestureListener());

        setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                tapGestureDetector.onTouchEvent(event);

                return false;
            }
        });
    }

    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
        mOnItemClickListener = onItemClickListener;
    }

    public interface OnItemClickListener {
        void onItemClick(int position);
    }

    private class TapGestureListener extends GestureDetector.SimpleOnGestureListener {

        @Override
        public boolean onSingleTapConfirmed(MotionEvent e) {
            if(mOnItemClickListener != null) {
                mOnItemClickListener.onItemClick(getCurrentItem());
            }

            return true;
       }
    }}

   这样子添加事件

  

ClickableViewPager viewPager = (ClickableViewPager) indViewById(R.id.viewPager);viewPager.setOnItemClickListener(new ClickableViewPager.OnItemClickListener() {
            @Override
            public void onItemClick(int position) {
                //your code
            }
        });

 

  附上链接 http://stackoverflow.com/questions/16350987/viewpager-onitemclicklistener

 附上手势检测好文章 http://blog.youkuaiyun.com/harvic880925/article/details/39520901

转载于:https://my.oschina.net/janson2013/blog/667727

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值