2 つのテキストを表示する次のリスト項目があります。1 つは左に配置され、もう 1 つは右に配置されます。今のところ、各テキストは異なる に配置されますTextView
:
1つだけ使いたいTextView
です。そのために、 を使用できることはわかっていますがSpannableString
、成功しない方法を見つけようとして何時間も費やしています。
TextView
両方のテキストを同じ配置で左と右に配置する方法を誰か教えてもらえますか?
前もって感謝します。
2 つのテキストを表示する次のリスト項目があります。1 つは左に配置され、もう 1 つは右に配置されます。今のところ、各テキストは異なる に配置されますTextView
:
1つだけ使いたい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);