- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我试图在一个简单的 Android 应用程序上检测一个 throw 事件,但第一个 MotionEvent
参数始终为空。为什么使用 null 参数调用 onFling 方法? Android documentation表示当一个 fling 事件发生时调用它,初始 on down MotionEvent 和匹配 up MotionEvent。
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// e1 always == null, return early a null reference exception
if (e1 == null) {
return false;
}
if (e1.getY() - e2.getY() > 120) {
handleFlingEvent();
return true;
}
return false;
}
}
主Activity有这个onTouchEvent方法:
GestureDetector flingDetector = new GestureDetector(new MyGestureDetector());
@Override
public boolean onTouchEvent(MotionEvent event) {
if (flingDetector.onTouchEvent(event)) {
return true;
}
return super.onTouchEvent(event);
}
最佳答案
我首先在 Android 4.0 中遇到了这个问题,因为我的代码在所有以前的版本中都可以正常工作。从这里的建议中得到提示后,我发现一个简单的解决方法是跟踪 onDown 事件并使用它来代替 onFling 的第一个参数,以防它碰巧为空。
public class MySimpleGestureListener extends SimpleOnGestureListener {
protected MotionEvent mLastOnDownEvent = null;
@Override
public boolean onDown(MotionEvent e) {
mLastOnDownEvent = e;
return true;//super.onDown(e);
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (e1==null)
e1 = mLastOnDownEvent;
if (e1==null || e2==null)
return false;
float dX = e2.getX()-e1.getX();
float dY = e2.getY()-e1.getY();
...rest of code
}
...rest of class
}
关于Android SimpleOnGestureListener.onFling 得到一个空的 MotionEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4151385/
我有一个简单的列表 Activity ,我为每个列表项定义了 onTouchEventListener 类。 问题是 onFling 事件永远不会发生,而不是按照事件顺序发生:onDown,onSho
我想在 LinearLayout 上添加一个 fling Action 。为此,我使用了以下代码。 public class NewsActivity extends Activity { .
首先我是 android 新手,所以首先想到任何新手错误 我正在尝试在我的代码中添加一个 fling 函数。 public class MainGamePanel extends SurfaceVie
我正在尝试在我的应用程序中实现手势,但由于某种原因,没有调用 onfling()。我尝试阅读许多关于此的帖子并尝试修复我的代码,但它不起作用。下面是我的代码。请看: public class Main
我有一个 ViewPager,它包含一个 RecyclerView 我将一个 OnTouchListener 添加到 RecyclerView 中的 ImageView 的项目,尝试使用 Gestur
我的线性布局:main_linear_layout包含四个线性布局:ll1 ll2 ll3 ll4.每个LinearLayout 都包含Buttons。我正在尝试在 main_linear_layou
像这样的问题有很多,但大多数都是问如何将 GestureDetector 设置为 View。我已经这样做了,现在我想知道,android 没有提供任何让图像快速播放的功能。我遇到的问题是我不知道如何处
所以我正在开发一个应用程序,其中有一个栏,用户应该能够“拉开”。当用户向上滑动时它应该展开。我一直在考虑如何做到这一点。我知道我可能可以在布局上使用 GestureDetector 中的 OnFlin
我在这个 Android 应用程序上实现了一个 SimpleOnGestureListener,它是基本实现并且一切正常: 该类实现了 OnTouchListener,我将它设置为正确 View 的
我有一个 Activity,它实现了一个手势检测器来捕捉用户的快速输入以导航到其他屏幕。这工作正常 - 但是 - 我最近更新了一个派生自 BaseActivity 的类以添加一个 onClick 函数
更新:查看扩展问题的赏金。 我在 ListView 上设置了一个 GestureDetector。 ListView 是一个完整的 fragment ,来自窗口的一侧并部分覆盖另一个 fragment
所以,我已经关注了这个特定的线程(How to stop scrolling in a Gallery Widget?),但我无法让它正常工作。 我创建了一个扩展 Gallery 的自定义 MyGal
我有一个扩展 ListActivity 的类。此类显示一个 AbsListView,其中每行都填充了总线 ID 和总线名称...当我在...('onFling')上做滑动手势时,我尝试处理行的总线名称
这是我在 StackOverflow 上的第一篇文章!我有一个正在运行的后台服务,我想知道我是否真的可以模拟水平滑动触摸屏手势,而不是仅仅检测它被调用。 我可以弄清楚如何捕获此事件,但我想实际模拟触摸
我已经实现了 SimpleOnGestureListener.onFling(),但我必须非常快地挥动才能触发它。有什么办法让它更灵敏吗? 提前致谢... 最佳答案 触发 onFling() 事件所需
我有一个使用 GestureDetector 的应用程序,我正在用 onDown 和 onFling(又名 onUp)替换一些图像。然而,在某些情况下,不会调用 onFling 并且结果并不漂亮:)
我想在 ListView 上捕获事件 onFling。我的目标是仅当我不在 onFling 事件中时才在我的 ListView 适配器中从 Internet 加载图像。几个月前我找到了一个 fragm
我正在尝试编写一个程序来检测和处理手势。我设法使 onFling 和 onScroll 事件起作用(这些事件在 Activity 内部的监听器类中实现)。但是,每次我进行滑动 (onFling) 时,
我有一个可扩展 ListView 。我正在执行删除每个项目的向左滑动的 listItem。 我正在使用自定义适配器来填充 ListView 项。 public class InsightsListAd
我正在尝试检测 TextView 对象的 onFling 事件。下面的代码非常适合 onDown 事件,但是它无法获取 onScroll 或 onFling 事件。有什么指点吗? 谢谢 package
我是一名优秀的程序员,十分优秀!