我有下一个列表项,它显示两个文本,一个左对齐,一个右对齐。现在,每个文本都放在不同的TextView
:
我只想使用一个TextView
. 为此,我知道我可以使用SpannableString
,但我有几个小时试图找出没有成功的方法。
谁能告诉我如何将两个文本放在同TextView
一个左对齐和右对齐的位置?
提前致谢。
我有下一个列表项,它显示两个文本,一个左对齐,一个右对齐。现在,每个文本都放在不同的TextView
:
我只想使用一个TextView
. 为此,我知道我可以使用SpannableString
,但我有几个小时试图找出没有成功的方法。
谁能告诉我如何将两个文本放在同TextView
一个左对齐和右对齐的位置?
提前致谢。
这就是我要做的:
首先,您需要测量右侧文本的长度。
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);