gpt4 book ai didi

java - LongPress 可以在 move 事件后触发吗?

转载 作者:太空狗 更新时间:2023-10-29 16:21:55 26 4
gpt4 key购买 nike

我正在开发一个简单的 android 应用程序,我的要求是,

“在屏幕上发生一些移动事件(MotionEvent.ACTION_MOVE 为真)后,如果用户在某处停止移动几秒钟而没有将手指从屏幕上移开,则需要执行一些操作。”

*我了解到 LongPress 是在触发向下事件 (MotionEvent.ACTION_DOWN) 后用户未进行任何移动时触发的。*

那么有没有办法在屏幕左右移动后触发长按呢?

或者我应该为相同的功能创建自己的监听器??

感谢任何帮助。

谢谢。

最佳答案

想法是每次在屏幕上移动手指时取消计时器(MotionEvent.ACTION_MOVE)。当你在一段时间后停止移动时,比如 3 秒后,定时器代码将被执行,你可以在其中执行长按任务。如果您停止移动一段时间并在耗时(3 秒)之前再次开始移动,则会再次设置新的计时器,依此类推。希望对你有帮助。

timer = new Timer();

public boolean onTouchEvent(MotionEvent event)
{
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
break;

case MotionEvent.ACTION_MOVE:
timer.cancel();
timer = null;
timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run() {
// do your long press task here
}
}, 3000);
break;

case MotionEvent.ACTION_UP:
timer.cancel();
timer = null;
break;
}
return super.onTouchEvent(event);
}

关于java - LongPress 可以在 move 事件后触发吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12364327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com