0

我有自定义视图并在该 customView 类中覆盖了 onTouchEvent。我想在单击 customView 时显示三个弧线。我已经实现了下面的代码来处理该视图上的点击事件。

@Override
public boolean onTouchEvent(final MotionEvent event) {

  if (event.getActionMasked() == MotionEvent.ACTION_UP) {
    Paint p = new Paint();
    RectF rectF = new RectF(50, 50, 500, 500);
    p.setColor(Color.BLACK);
    canvas.drawArc(rectF, 0, 45, true, p);
    canvas.drawArc(rectF, 145, 45, true, p);
    canvas.drawArc(rectF, 260, 45, true, p);
    invalidate(50, 50, 500, 500);
    return performClick();
  }
  return true;
}

请提出我犯了什么错误。

4

1 回答 1

0

为什么单击完成后还需要调用 performClick() ?
如果你处理了事件,你应该返回 true,否则返回 false。所以我认为 corect 变体应该是

@Override
public boolean onTouchEvent(final MotionEvent event) {

  if (event.getActionMasked() == MotionEvent.ACTION_UP) {
    Paint p = new Paint();
    RectF rectF = new RectF(50, 50, 500, 500);
    p.setColor(Color.BLACK);
    canvas.drawArc(rectF, 0, 45, true, p);
    canvas.drawArc(rectF, 145, 45, true, p);
    canvas.drawArc(rectF, 260, 45, true, p);
    invalidate(50, 50, 500, 500);
    return true;
  }
  return false;
}
于 2013-10-24T14:53:58.327 回答