1

2 つのテキストを表示する次のリスト項目があります。1 つは左に配置され、もう 1 つは右に配置されます。今のところ、各テキストは異なる に配置されますTextView:

ここに画像の説明を入力

1つだけ使いたいTextViewです。そのために、 を使用できることはわかっていますがSpannableString、成功しない方法を見つけようとして何時間も費やしています。

TextView両方のテキストを同じ配置で左と右に配置する方法を誰か教えてもらえますか?

前もって感謝します。

4

1 に答える 1

0

これは私がすることです:

まず、右側のテキストの長さを測定する必要があります。

            float textsize = messageview.getPaint().getTextSize();
                int lenght = int lenght = textsize * text.length();

その後、leadingMarginSpan を使用します。

public class leadingMarginSpan2 implements LeadingMarginSpan.LeadingMarginSpan2{
        private int margin;
        private int lines;

        public leadingMarginSpan2(int lines, int margin){
            this.lines = lines;
            this.margin = margin;
        }
        @Override
        public void drawLeadingMargin(Canvas arg0, Paint arg1, int arg2,
                int arg3, int arg4, int arg5, int arg6, CharSequence arg7,
                int arg8, int arg9, boolean arg10, Layout arg11) {
            // TODO Auto-generated method stub

        }

        @Override
        public int getLeadingMargin(boolean first) {
            if(first){
                return margin;
            }
            else{
                return 0;
            }
        }

        @Override
        public int getLeadingMarginLineCount() {
            return lines;
        }

    }

設定スパン:

spantext.setSpan(new leadingMarginSpan2(1, getWidth() - lenght), 0, text.lenght, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
于 2013-06-12T20:21:27.863 に答える