0

私は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何も描画されていません。

4

2 に答える 2