我不想使用viewpager,因为我必须轻松添加,删除,重新排序片段(与ViewPager合并这样做)。
所以在每个片段中我使用手势检测器:
final GestureDetector mGesture = new GestureDetector(getActivity(),
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
LogUtils.LOGD(TAG, "onFling has been called!");
final int SWIPE_MIN_DISTANCE = 120;
final int SWIPE_MAX_OFF_PATH = 250;
final int SWIPE_THRESHOLD_VELOCITY = 200;
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
EventBus.getDefault().post(new SwipePartTrainingEvent(true));
LogUtils.LOGD(TAG, "Right to Left");
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
EventBus.getDefault().post(new SwipePartTrainingEvent(false));
LogUtils.LOGD(TAG, "Left to Right");
}
} catch (Exception e) {
// nothing
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
在每个片段中,我都有一个包含不同项目的recyclerview。如果我在recyclerview之外滑动(高度为wrap_content),手势可以正常工作。但是在recyclerview(在项目上),滑动不起作用。
那么我该如何在片段上的任何地方滑动?
非常感谢