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
,使用中的内容,将是您的最佳选择。