Android ScrollView不断重新绘制它的组件

时间:2013-06-10 06:10:14

标签: android scrollview

我没有选择,也许有人知道的更好。我的问题是我有一个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的永恒循环”,并保持“无减速效果”代码。

1 个答案:

答案 0 :(得分:0)

返回的布尔值的含义记为:

如果侦听器已使用该事件,则为True,否则为false。

没有真正解释。 “消费”意味着其他听众不需要看到该事件。 “未消耗”意味着听众可能看不到后续相关事件。

我不清楚代码的目的是什么 - 它肯定只消耗两种类型的事件。 但是您可以将event.getAction()添加到日志中,看看发生了什么。我记得,不同版本的Android可能会为同一手势生成一些不同的事件序列。

相关问题