是否真的没有DEFAULT类可以向左或向右滑动?

时间:2016-03-17 23:04:28

标签: java android view swipe

我正在制作一个可以在屏幕上左右滑动事实的应用程序,我的问题是我找不到默认类来执行此操作,相反,常用的非常简单的操作需要这个:

public boolean onTouchEvent(MotionEvent event)
 {     
     switch(event.getAction())
     {
       case MotionEvent.ACTION_DOWN:
           x1 = event.getX();                         
   break;         
   case MotionEvent.ACTION_UP:
       x2 = event.getX();
       float deltaX = x2 - x1;
       if (Math.abs(deltaX) > MIN_DISTANCE)
       {
         Toast.makeText(this, "left2right swipe", Toast.LENGTH_SHORT).show ();
       }
       else
       {
           // consider as something else - a screen tap for example
       }                          
   break;   
 }           
 return super.onTouchEvent(event);       
 }
对于基本运动来说,或者同样困难和陌生的东西。

有更简单的方法吗?我觉得这种大规模操作系统的SDK没有一个默认类来处理这个问题是不可接受的,特别是因为有一个' ACTION _'除了左右之外几乎所有的东西。

1 个答案:

答案 0 :(得分:3)

ViewPagerHorizontalScrollViewRecyclerView可以处理许多高级用例。还有一个已弃用的Gallery小部件。

GestureDetector可以处理许多较低级别的用例,例如this SO question上的解决方案系列。但是,您必须准确定义什么构成“基本运动”(使用您的说法)。

还有old GestureLibrary stuff,这是我多年没见过的,所以我不知道它是否仍然实用。

对于不同的方案也有many libraries that offer swipe options(例如,列表行中的滑动到关闭)。

将来,您可能会考虑提供更具体的方案(并减少抱怨),以获得更具体的建议。您对“在屏幕上左右滑动事实”的描述相当模糊。