Android 单向寻呼机
我正在尝试创建一个应用程序,用户可以在其中浏览一组照片。向左或向右滑动后,应删除上一张照片并显示下一张照片 Android的ViewPager似乎非常适合这个应用,除了它模拟的是幻灯片而不是一副牌。当用户向左或向右滑动时,如何使其进入下一页Android 单向寻呼机,android,android-viewpager,android-view,fragmentpageradapter,Android,Android Viewpager,Android View,Fragmentpageradapter,我正在尝试创建一个应用程序,用户可以在其中浏览一组照片。向左或向右滑动后,应删除上一张照片并显示下一张照片 Android的ViewPager似乎非常适合这个应用,除了它模拟的是幻灯片而不是一副牌。当用户向左或向右滑动时,如何使其进入下一页 一种可能的方法是创建一组在任意方向对称的页面。然后,如果ViewPager始终固定在这些页面的中间,则它将显示为朝一个方向移动。这看起来更像是一种黑客行为,所以我希望有人能知道一种更好的方法来实现这一点。您必须制作自己的ViewPager,以扩展原始View
一种可能的方法是创建一组在任意方向对称的页面。然后,如果ViewPager始终固定在这些页面的中间,则它将显示为朝一个方向移动。这看起来更像是一种黑客行为,所以我希望有人能知道一种更好的方法来实现这一点。您必须制作自己的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);
}
}
}
它只朝一个方向移动。这似乎迫使用户只能向左向右滑动?我希望用户能够向任意方向滑动,仍然可以看到相同的下一页。Android SDK中还有一个不常使用的小部件,您可能会发现它是定制实现的基础。或者,它的父项也值得一看。嗯,StackView似乎不处理用户的刷卡。这就是为什么我要研究ViewPager,因为它已经可以处理刷卡。是的,你必须自己实现触摸处理,这就是为什么我说“作为一个基础”。现在还没有想到这一点,但再一次,它与您的需求并不完全匹配。我想你自己的建议实际上也是一个相当可行的方法,而且不太难实现。