您的位置:首页 > 其它

slidingMenu下的Viewpager滑动点击事件冲突

2016-01-13 10:38 218 查看

slidingMenu下的Viewpager滑动点击事件冲突

一定义触摸事件

/**

自定义Viewpager触摸事件

*/

class PagerOnTouchListener implements OnTouchListener {

@Override

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()){
case MotionEvent.ACTION_UP:
MyLog.d(TAG,"Viewpager上的手指抬起了! ");
mTopViewsHandler.postDelayed(pagerRollRunnable,5000);//手指抬起时时开启轮播
}
return  gestureDetector.onTouchEvent(event);


}

}

/**

重写手势识别器

*/

GestureDetector gestureDetector = new GestureDetector(new GestureDetector.OnGestureListener(){

@Override

public boolean onDown(MotionEvent e) {

MyLog.d(TAG,”onDown”);

mTopViewsHandler.removeCallbacks(pagerRollRunnable);//停止轮播

mTopNewsViewPager.getParent().requestDisallowInterceptTouchEvent(true);//让SlidingMenu不响应事件

return false;

}

@Override

public void onShowPress(MotionEvent e) {

MyLog.d(TAG,”onShowPress”);

}

@Override

public boolean onSingleTapUp(MotionEvent e) {

//实现ViewPager图片点击的跳转

UIUtils.startActivity(MainActivity.this, NewsDetailActivity.class, Constants.NEWS_ID_KEY, topNewsList.get(mTopNewsViewPager.getCurrentItem() % topNewsList.size()).newid+”“);

MyLog.d(TAG,”onSingleTapUp”);

return false;

}

@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {

MyLog.d(TAG,”onScroll”);

return false;

}

@Override

public void onLongPress(MotionEvent e) {

MyLog.d(TAG,”onLongPress”);

}

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

MyLog.d(TAG,”onFling”);

return false;

}

});

二 ,使用

mTopNewsViewPager.setOnTouchListener(new PagerOnTouchListener());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: