我希望按钮在我单击一个图像后5秒钟内可见,但是如果我在这5秒钟内再次单击图像,我不希望按钮在前5秒钟结束时隐藏,而是在后5秒钟结束时隐藏。所以基本上我想在超时开始后取消这个函数。这样的事可能吗?有没有其他方法可以达到同样的效果?
这是我正在使用的timeout方法函数。
@Override
public boolean onTouch(View v, MotionEvent event) {
btnRemove.setVisibility(View.VISIBLE);
final Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
btnRemove.setVisibility(View.GONE);
}
}, 5000);
}
1条答案
按热度按时间dsekswqp1#
确保
Handler
是示例变量,而不是局部变量,当onTouch
方法返回。在封闭类中的任何一点上,您都可以调用:
handler.removeCallbacksAndMessages(null);
这将删除所有延迟/排队的Runnable
物体。