我没有选择,也许有人知道的更好。我的问题是我有一个ScrollView(descentand)并在其中插入一个View(后代)。一切都很好,除非我想向上滚动(视图向上,手指向下),直到达到滚动区域的原点,此后我可以看到每隔约130毫秒调用一次MYView.onDraw(),这将永远。
我发现这种奇怪的行为是由这段代码引起的:
myScrollView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Log.d("myapp", "onTouch");
if (event.getAction() == MotionEvent.ACTION_UP
|| event.getAction() == MotionEvent.ACTION_CANCEL) return true;
return false;
}
});
如果我注释掉if
语句,问题就解决了。我甚至不确定这行代码是做什么的。它认为它应该禁用“减速”动量效应。 (因为我的应用程序不需要)。我想我几个月前从某人的样本中复制粘贴了这段代码。
所以问题是如何删除“onDraws的永恒循环”,并保持“无减速效果”代码。
答案 0 :(得分:0)
返回的布尔值的含义记为:
如果侦听器已使用该事件,则为True,否则为false。
没有真正解释。 “消费”意味着其他听众不需要看到该事件。 “未消耗”意味着听众可能看不到后续相关事件。
我不清楚代码的目的是什么 - 它肯定只消耗两种类型的事件。
但是您可以将event.getAction()
添加到日志中,看看发生了什么。我记得,不同版本的Android可能会为同一手势生成一些不同的事件序列。