我试图在android应用程序的textview上显示字符串,我有以下字符串
String Fruityellow = " Mango" ;
String Fruitred = " Apple" ;
String Fruitgreen = " Guava" ;
String Fruitpink = " Pomegranate" ;
So i append them and print them on textview
output_display = "Fruityellow :" + Fruityellow + "\r\n" +
"Fruitred :" + Fruitred + "\r\n" +
"Fruitgreen :" + Fruitgreen + "\r\n" +
"Fruitpink :" + Fruitpink + "\r\n" );
text_view.settext(output);
但显示屏上显示的是垂直方向上未对齐的冒号。为什么?
所以我用了一根可伸缩的绳子把冒号保持在中间
SpannableString span_colon = new SpannableString(":");
span_colon.setSpan((new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER)), 0, span_colon.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
spanned total_display = (Spanned)TextUtils.concat("Fruityellow",span_colon,Fruityellow,
"\r\nFruitred",span_colon,Fruitred,
"\r\nFruitgreen",span_color,Fruitgreen,
"\r\nFruitpink",span_color,Fruitpink);
text_view.settext(total_display );
当前输出为:
Fruityellow:Mango
Fruitred:Apple
Fruitgreen:guava
Fruitpink:Pomegranate
预期产出为:
Fruityellow : Mango
Fruitred : Apple
Fruitgreen : guava
Fruitpink : Pomegranate
如果我只打印span_冒号,它会正确地出现在屏幕中央
如何在textview中使冒号位于屏幕中心?冒号不需要居中,但应该垂直对齐。
3条答案
按热度按时间44u64gxh1#
您使用空格的方式不起作用,因为用于textview的字体对于每个字符都有不同的宽度和大小,包括空格本身。如果你能加上
android:fontFamily="monospace"
对于xml,它将按照您的期望显示空间,但可能不是您期望的文本视图的字体。00jrzges2#
如果你想这样(只要有一个),在文本视图中肯定没有意义,因为你要自定义他。通常,此方法有3种逻辑模式,每个模式都可以根据您的选择进行构建。
重新格式化文本以避免使用表格
使用webview呈现html表
为您的表使用本机小部件和容器(如tablelayout)
aoyhnmkz3#
仅使用一种方法无法实现这一点
TextView
因为文本大小可能会独立变化。您可能需要一个额外的TextView
裹在ConstraintLayout
或RelativeLayout
或LinearLayout
应用了必要的约束条件。诀窍(但可能是最糟糕的诀窍)是将冒号作为前缀附加到水果名称上,而不是作为后缀附加到水果标签上。
你可以用
SpannableStringBuilder
为了实现这一点。xml部分-ui
输出
注意:您可以调整
layout_weight
属性设置所需的空间label
及description
.