Sol*_*uiD 2 android ontouchlistener android-viewpager motionevent
我的问题是检测到所有触摸事件,但没有检测到Action_Down事件。该日志会导致事件1、2而不是0(向下)。
这是我的代码
final ViewPager homeViewPager = (ViewPager)findViewById(R.id.homeViewPager);
homeViewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch (View v, MotionEvent event){
Log.i("ViewPager", "event " + event.getAction());
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
Log.i("ViewPager", "ACTION_MOVE");
break;
case MotionEvent.ACTION_DOWN:
Log.i("ViewPager", "ACTION_DOWN");
break;
case MotionEvent.ACTION_UP:
Log.i("ViewPager", "ACTION_UP ");
break;
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
我在http://neevek.net/posts/2013/10/13/implementing-onInterceptTouchEvent-and-onTouchEvent-for-ViewGroup.html上找到了很好的解释
简单地说:viewpager是一个视图组,因此默认情况下它将其(向下)触摸事件传递给子视图
解决方案,我以此覆盖类并使用了我的viewpager类
public class MyViewPager extends ViewPager {
public MyViewPager(Context context) {
super(context);
}
public MyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return true;
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
1309 次 |
| 最近记录: |