1

我有下一个列表项,它显示两个文本,一个左对齐,一个右对齐。现在,每个文本都放在不同的TextView:

在此处输入图像描述

我只想使用一个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 回答