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