在实际生活中,我们使用到的按键在短按、长按和按键松开时都会触发不同的功能。按键短按后松开和长按后松开的应用比短按和长按的应用较少,我了解的按键短按后松开和长按后松开的应用是在点动控制和长动控制中。这里主要讨论按键的短按、长按和连续这三种状态的判断。
假设0ms~750ms为短按的判定时间范围,750ms~900ms为持续的判定时间范围。
那么当按键按下后,在0ms~750ms内松开,就实现短按对应的操作。
按键按下后,不松开,那么在750ms的时候就要触发一次长按对应的操作。如果还不松开,每隔150ms便检测一次当前按键的状态,如果仍未松开,就触发一次按键持续(长按持续)对应的操作(例如让显示的数字一直加一或一直减一),直到松开(这时候就可以添加一个按键长按后松开的对应操作,不过这个操作是可选的)。
注意:长按对应的操作在每次按键按下时只能触发一次,后续则是持续对应的操作了。
这里的时间范围是可以自定义的,没有严格要求,在实际中应该结合项目的要求来实现。