私はTextView
このように両端にテキストを描画できるカスタムを作成しています.ビューは私のレイアウトの TextViews です。グリッド レイアウトに追加された名、姓のように)
スクリーン ショットを参照してください。これはビューの現在の状態です。
高さが固定されているときにテキストが表示されます。右側のテキストは任意の長さにすることができ、高さを目的の高さに折り返す必要があるため、この動作は望ましくありません。これはオーバーライドされたonMeasure
メソッドです
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
if (mRightText == null) return;
initStaticLayout();
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), mLayout.getHeight());
}
mLayout
ですStaticLayout
private void initStaticLayout() {
if (mLayout == null) {
mLayout = new StaticLayout(mRightText, mPaint,
getWidth() / 2 - getPaddingRight() - getPaddingLeft(),
Layout.Alignment.ALIGN_NORMAL,
1, 0, true);
}
}
高さが設定されている場合、wrap_content
何も描画されていません。