2 回答
TA贡献1779条经验 获得超6个赞
尝试使用预定义的方法 -
onClickListener( () => {} )
单击onLongClickListener( () => {} )
长时间点击
这样你就不需要计算用户点击的时间,并且通过运行循环或线程你可以在长时间点击时不断改变颜色。
更新
正如评论中提到的,它只需要一个特定的时间使用以下算法-
长按按钮启动计时器
2 秒后立即应用结果
** 更新**
由于需要点击时间,请遵循:
在按钮定义之前创建一个计时器
使用长按列表器启动计时器
在停止计时器的动作上,您会得到结果
TA贡献1757条经验 获得超7个赞
我找到了一个简单的解决方案来研究长按事件的工作原理。每次单击视图时,都会延迟Runnable将类型CheckForLongPress添加到队列中。如果延迟结束,OnLongClickListener则调用。如果在延迟结束之前有不同的事件,则将CheckForLongPress Runnable其从队列中移除。
我只是覆盖postDelayed(Runnable action, long delayMillis)视图的公共方法来更改操作系统延迟
@Override public boolean postDelayed(Runnable action, long delayMillis) {
boolean isLongPress = action.getClass().getSimpleName().equals("CheckForLongPress");
return super.postDelayed(action, isLongPress ? LONG_PRESS_MILLIS : delayMillis);
}
我设置LONG_PRESS_MILLIS为 100,它正在工作!
希望能帮助到你!!!;)
图片来源: MArtinCR
添加回答
举报