实际上我正在尝试在我的 android (1.5) 应用程序中实现一个 ontouchlistener 。因此我在类中实现了“ontouchlistener”,然后我将代码放入:

public boolean onTouchEvent (MotionEvent e){
 //code
}

问题是,如果我拖动(例如)Spinner 或 EditTextView ,则不会调用此方法。我发现解决这个问题的唯一方法是手动向每个视图添加一个 ontouchlistener :

((Spinner)(findViewById(R.id.spinner1))).setOnTouchListener(tl);
((Spinner)(findViewById(R.id.spinner2))).setOnTouchListener(tl);

(TL是OnTouchListener)那么,在获得每个视图之前,没有办法抓住触摸事件吗?提前致谢

里平

有帮助吗?

解决方案

您到底想做什么 - 您想:

  • 检测某些部分的完整手势Activity.
  • 仅检测给定的触摸View

如果你想要前者:

看一下这个例子:网格布局上的滑动手势检测.

基本上,您将所有注册的触摸事件重定向到 GestureDetector。它了解用户输入的确切内容(单击、双击、滚动等)并在 SimpleOnGestureListener, ,您应该实施。

如果你想要后者:

您可以:

  1. 覆盖视图的 onTouchEvent().
  2. 实施和挂钩 onTouchListener (如果您想在发送之前获得联系)。

如果你想实施 onTouchListener, ,你将不在 onTouchEvent() 方法,但在接口的 onTouch() 方法。

希望有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top