当用户单击 ImageButton
我试图创建一个 同时 实现 OnClickListener
和 OnTouchListener
的静态类
static class ClickListenerForScrolling implements OnClickListener, OnTouchListener
具有以下方法:
@Override
public void onClick(View v)
和
@Override
public boolean onTouch(View arg0, MotionEvent arg1)
这背后的整个想法是在用户触摸它时更改 ImageButton
的图像源,并在用户单击此按钮时执行任务。任何人都可以提示我如何执行此操作吗?
原文由 Tobias Moe Thorstensen 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于这两个动作都包含手势“将手指放在屏幕上 - 从屏幕上抬起手指”,因此您无法确定它是触摸动作还是点击动作。因此,如果您在此图像按钮上实现两个侦听器,则触摸/单击将更改图片并按下按钮。不确定这些事件是否有确定的顺序……
但是,如果您想分离这些事件,您将需要为其中一个动作定义不同的手势(例如擦拭以更改图片),或者创建处理事件的不同区域,例如图像不适合整个按钮和自由区域作为按钮点击区域。
HTH
更新:
我发现,a
TouchEvent
比ClickEvent
更通用,因此它首先被调用。如果侦听器已使用该事件,则返回 true,否则返回 false。所以你可以在你的实现中决定事件是否也应该由 OnClickListener 处理,然后只返回
false
。