问题描述
我想实现一个ViewPager刷卡用两个手指。我试图执行的ViewPager覆盖的onTouchEvent并通过该方法仅如果触摸由2个手指作出超类sublcass。但有一个问题:刷卡动画还与1手指!我想我必须重写一些其他的方法......
这是我ViewPager类:
公共类MyViewPager扩展ViewPager {
公共MyViewPager(上下文的背景下){
超(上下文);
}
公共MyViewPager(上下文的背景下,AttributeSet中的AttributeSet){
超(背景下,AttributeSet中的);
}
@覆盖
公共布尔的onTouchEvent(MotionEvent EV){
INT N = ev.getPointerCount(); //手指的数量
如果(N == 2)
返回super.onTouchEvent(EV);
否则返回false;
}
}
重写 onInterceptTouchEvent()
应该做的伎俩。根据在<一个评价href="http://grep$c$c.com/file/repository.grep$c$c.com/java/ext/com.google.android/android/4.0.1_r1/android/support/v4/view/ViewPager.java#ViewPager.onInterceptTouchEvent%28android.view.MotionEvent%29"相对=nofollow> ViewPager
来源的,它的存在在那里作出决定是否滚动应该启动与否。
I would to implement a ViewPager swipe with two fingers.I tried to implement a sublcass of ViewPager overriding the onTouchEvent and passing the method to superclass only if the touch is made by 2 fingers.But there is a problem: the swipe animation also works with 1 finger!I think I have to override some other method...
This is my ViewPager class:
public class MyViewPager extends ViewPager{
public MyViewPager(Context context) {
super(context);
}
public MyViewPager(Context context,AttributeSet attributeSet) {
super(context,attributeSet);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
int n = ev.getPointerCount(); //number of fingers
if (n == 2)
return super.onTouchEvent(ev);
else return false;
}
}
Overriding onInterceptTouchEvent()
should do the trick. According to the comments in the ViewPager
sources, it's there where the decision is made whether scrolling should start or not.
这篇关于ViewPager刷卡用2个手指的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!