我试图在android应用程序的文本视图上显示字符串,我有以下字符串
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);但显示的垂直错对冒号.Why?
所以我用可伸缩的绳子把结肠放在中间
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_colon,它就会出现在屏幕的中央。
如何在文本视图中获得屏幕中心的冒号?冒号不需要位于中间,而应该垂直对齐。
发布于 2021-07-26 08:17:30
您使用空间的方式无法工作,因为用于TextView的字体对于每个字符都有不同的宽度和大小,包括空格本身。如果您可以将android:fontFamily="monospace"添加到xml中,那么它将显示您所期望的空间,但可能不是您期望的TextView字体。
发布于 2021-07-26 08:59:12
这不能仅使用一个TextView实现,因为文本大小可能独立变化。您可能需要一个附加的TextView,包装在ConstraintLayout、RelativeLayout或LinearLayout中,并应用必要的约束。
技巧(但可能是最糟糕的技巧)是将冒号作为前缀附加到水果名称中,而不是作为水果标签的后缀。
您可以使用SpannableStringBuilder来实现这一点。
val label = SpannableStringBuilder()
label.append("\nFruit Yellow ")
label.append("\nFruit Red ")
label.append("\nFruit Green ")
val des = SpannableStringBuilder()
des.append(": Mango\n")
des.append(": Apple\n")
des.append(": Guava\n")
binder.msgViewLabel.text = label.toString()
binder.msgViewDes.text = des.toString()XML部件- UI
<LinearLayout
android:id = "@+id/container_layout"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal"
android:weightSum = "1">
<androidx.appcompat.widget.AppCompatTextView
android:id = "@+id/msg_view_label"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_weight = "0.5"
android:textColor = "@android:color/holo_green_dark"/>
<androidx.appcompat.widget.AppCompatTextView
android:id = "@+id/msg_view_des"
android:layout_width = "0dp"
android:layout_height = "wrap_content"
android:layout_weight = "0.5"
android:textColor = "@android:color/holo_green_dark"/>
</LinearLayout>输出

注意:您可以调整layout_weight属性以设置label和description所需的空间。
发布于 2021-07-26 10:12:18
如果你想成为那样的人(只要一个),这在文本视图中当然是没有意义的,因为你要定制他。通常,这种方法有三种逻辑模式,每种模式都可以根据您的选择构建。
https://stackoverflow.com/questions/68525162
复制相似问题