最近做项目的时候 , 有一个看图片的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