我编写了一个简单的子类来为 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 源代码,但找不到发生这种情况的原因。有人有想法吗?