3

我编写了一个简单的子类来为 edittext 字段添加标签。除了提示之外,我还想要一个标签。该字段应该是可编辑的,在字段的右侧有一个提示,在框的左侧有一个标签。

  @Override
  public void onDraw(final Canvas canvas) {
    super.onDraw(canvas);
    if (labelX == -1 || labelY == -1) {
      makeTextMeasurements();
    }
    canvas.save();
    canvas.drawText(mLabel, labelX, labelY, mPaint);
    canvas.restore();
  }

  private void makeTextMeasurements() {
    mMeasuredTextHeight = getTextHeight(mPaint);
    labelX = (int) ViewUtils.getScaledPixels(20, getContext());
    labelY = (int) ((getHeight() / 2.0f) + (mMeasuredTextHeight / 2.0f));
  }

如果我不调用 setInputType,该类可以正常工作。但是如果我调用 setInputType,canvas.drawText() 将要绘制的文本不会出现。我查看了 EditText 源代码,但找不到发生这种情况的原因。有人有想法吗?

4

0 回答 0