我正在尝试创建一个应用,用户可以在其中轻扫一副照片。向左或向右滑动后,应删除上一张照片并显示下一张照片。
Android的ViewPager似乎是理想的,除了它模拟幻灯片而不是卡片。当用户向左或向右滑动时,如何使其转到下一页?
可能这样做的一种方法是创建一组在任一方向上对称的页面。然后,如果ViewPager始终固定在这些页面的中间,那么它将显示在一个方向上移动。这似乎更像是一个黑客,所以我希望有人可能知道更好的方法来做到这一点。
答案 0 :(得分:-1)
您必须创建自己的ViewPager,扩展原始ViewPager并覆盖onTouchEvent方法
public class CustomViewPager extends ViewPager {
float lastX = 0;
boolean lockScroll = false;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomViewPager(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
lastX = ev.getX();
lockScroll = false;
return super.onTouchEvent(ev);
case MotionEvent.ACTION_MOVE:
if (lastX > ev.getX()) {
lockScroll = false;
} else {
lockScroll = true;
}
lastX = ev.getX();
break;
}
lastX = ev.getX();
if(lockScroll) {
return false;
} else {
return super.onTouchEvent(ev);
}
}
}