Java 是否真的没有向左或向右滑动的默认类?

Java 是否真的没有向左或向右滑动的默认类?,java,android,view,swipe,Java,Android,View,Swipe,我正在制作一个可以在屏幕上左右滑动事实的应用程序,我的问题是我找不到一个默认类来执行此操作,而一个常用的非常简单的操作需要: public boolean onTouchEvent(MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN: x1 = event.getX();

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

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”。

许多高级用例可以通过
ViewPager
HorizontalScrollView
RecyclerView
来处理。还有弃用的
Gallery
小部件

许多较低级别的用例都可以通过
GestureDetector
来处理,例如上的解决方案系列。然而,你必须准确地定义什么是“基本运动”(用你的大喊词)

还有,我已经很久没有看到使用过了,所以我不知道它是否仍然实用

对于不同的场景也有不同的解决方案(例如,在列表行中滑动以解除)


在未来,你可以考虑提供一个更具体的场景(而不是抱怨),以得到更具体的建议。您对“在屏幕上左右滑动事实”的描述相当模糊。

尝试使用ViewPager执行任务。你可以在不同的页面之间滑动。我在屏幕中央有一个文本视图,我希望它根据他们是向左还是向右滑动(向前还是向后滑动一个事实)而改变。@420blazeit:通常,对于滑动手势,你希望被滑动的东西移动,向用户显示视觉反馈。您似乎不希望这样,因此我列出的高级解决方案对您不起作用。其中一个库可能会处理这个问题,尽管我不知道有任何库会处理这个问题。
GestureDetector
选项将是您的最佳选择。或者,重新考虑您的用户界面,使用用户可能已经习惯的模式,并且适合现有支持的场景。@420blazeit:现在,如果我误解了您的“在屏幕中央有一个文本视图”部分,您的意思是希望它从中心开始,但随后跟随手指并被刷掉。。。然后,
ViewPager
就是您想要的。它为你处理所有的手势;你只需告诉它有多少页面以及页面内容是什么(
视图
片段
)。我最初想做的是让它作为一个动作侦听器向左或向右滑动,然后当它们滑动时,textview文本立即改变。我该怎么做?与此类似:
swipe.onswipleft(){
@420blazeit:同样,这不是现代触摸屏UI的典型特征,这就是为什么您必须自己处理较低级别的内容
GestureDetector
,使用中的内容,将是您的最佳选择。