Java 文本视图中部分左对齐和部分右对齐的文本。为什么不是';这不管用吗?
我在文本视图中遇到了一个问题,其中有些文本应该是左对齐的,有些文本应该是右对齐的 这是我的尝试Java 文本视图中部分左对齐和部分右对齐的文本。为什么不是';这不管用吗?,java,android,android-widget,Java,Android,Android Widget,我在文本视图中遇到了一个问题,其中有些文本应该是左对齐的,有些文本应该是右对齐的 这是我的尝试 String LeftText = "LEFT"; String RightText = "RIGHT"; String resultText = LeftText + " " + RightText; SpannableString styledResultText = new SpannableString(resultText); styledResultText.setSpan(new
String LeftText = "LEFT";
String RightText = "RIGHT";
String resultText = LeftText + " " + RightText;
SpannableString styledResultText = new SpannableString(resultText);
styledResultText.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_OPPOSITE), LeftText.length() + 1, LeftText.length() + 2 + RightText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(styledResultText);
这里是textview的xml
<TextView
android:id="@+id/titleBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
然而,这是行不通的。所有文本都在左对齐。我在这里遗漏了什么?我自己也走过这条路……不幸的是,根据我的研究,我不相信一行文本有两个对齐跨度是可能的。您必须将其拆分为两个不同的
TextView
对象。我自己也经历过这一过程……不幸的是,根据我的研究,我不相信一行文本可以有两个对齐跨度。您必须将其拆分为两个不同的TextView
对象。如果rightText不需要对边进行右对齐,您可以使用TabStopSpan轻松解决此问题
final TextView tv = ...
int column = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
(float) 200.0, getResources().getDisplayMetrics());
SpannableStringBuilder textspan = new SpannableStringBuilder("Charges\nPrice\t$25.00\nShipping\t$155.08\nTax\t$5.11\n");
textspan.setSpan(new TabStopSpan.Standard(column), 0, textspan.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(textspan);
如果要将其移动到文本视图的右边缘附近,可以使用全局布局侦听器设置布局后的制表位。然后可以使用textview的宽度在边缘附近设置一个制表位
final TextView tv = ...
int column = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
(float) 200.0, getResources().getDisplayMetrics());
SpannableStringBuilder textspan = new SpannableStringBuilder("Charges\nPrice\t$25.00\nShipping\t$155.08\nTax\t$5.11\n");
textspan.setSpan(new TabStopSpan.Standard(column), 0, textspan.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(textspan);
如果您希望右对齐,只需创建一个扩展替换span的类,该类将为您对齐文本。如果右对齐文本不需要对边缘进行右对齐,则可以使用TabStopSpan轻松解决此问题
final TextView tv = ...
int column = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
(float) 200.0, getResources().getDisplayMetrics());
SpannableStringBuilder textspan = new SpannableStringBuilder("Charges\nPrice\t$25.00\nShipping\t$155.08\nTax\t$5.11\n");
textspan.setSpan(new TabStopSpan.Standard(column), 0, textspan.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(textspan);
如果要将其移动到文本视图的右边缘附近,可以使用全局布局侦听器设置布局后的制表位。然后可以使用textview的宽度在边缘附近设置一个制表位
final TextView tv = ...
int column = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
(float) 200.0, getResources().getDisplayMetrics());
SpannableStringBuilder textspan = new SpannableStringBuilder("Charges\nPrice\t$25.00\nShipping\t$155.08\nTax\t$5.11\n");
textspan.setSpan(new TabStopSpan.Standard(column), 0, textspan.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(textspan);
如果您希望文本右对齐,只需创建一个扩展替换span的类,它将为您调整文本。是什么阻止您创建一个左对齐的文本视图和另一个右对齐的文本视图?问题是我希望能够在其中滚动。我现在意识到我可以使用scrollview来实现这一点。是什么阻止了你创建一个左对齐的TextView和另一个右对齐的TextView?问题是我希望能够在其中滚动。我现在意识到我可以用滚动视图来做这件事……好吧,然后我要问一个反问题。我希望能够拖动此视图,以便它可以容纳比屏幕一次可以查看的更多行。但是suer可以点击和拖动。如果您只有一个textview,那么这样做很简单。但是我如何使用2个文本视图呢?好吧,然后我要问一个反问题。我希望能够拖动此视图,以便它可以容纳比屏幕一次可以查看的更多行。但是suer可以点击和拖动。如果您只有一个textview,那么这样做很简单。但是我如何使用2个文本视图呢?