微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在自定义视图中具有无效行为的奇怪行为

如何解决在自定义视图中具有无效行为的奇怪行为

我有一个customview,当我触摸customview并将其显示在我的customview中时,会在其中增加一个值。

对于95%的用户来说,这很好用,但有时自定义视图会显示旧值,我无法解释这种情况如何发生。

示例: 日志说:

1 2 3 4 5 6

Customview显示

1 2 3 4 5 4

我的代码

public class MyView extends View {
    
    private int testvalue = 0;

    private final Handler updateHandler = new Handler() {
        public void handleMessage(final Message msg) {
            testvalue = testvalue + 1;
            invalidate();
        }
    };

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        paintstatus.setTextSize(120);
        canvas.drawText("" + testvalue,400,600,paintstatus);
        Log.v("DEBUG_DRAW","" + testvalue);
    }


    @Override
    public boolean onTouchEvent(MotionEvent event) {
            updateHandler.sendEmptyMessage(0);
            return true;
    }
}

日志说:

2020-08-28 08:56:46.638 20171-20171/myapp V/DEBUG_DRAW: 40
2020-08-28 08:56:46.705 20171-20171/myapp  V/DEBUG_DRAW: 41
2020-08-28 08:56:47.505 20171-20171/myapp  V/DEBUG_DRAW: 42
2020-08-28 08:56:47.587 20171-20171/myapp  V/DEBUG_DRAW: 43

在2020-08-28 08:56:47.587时,我在屏幕上看到以下内容

enter image description here

有人对此有解释吗?我在做什么错了?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。