繁体   English   中英

Android TextView 多行格式设置

[英]Android TextView Multiline Formatting

我的 logcat 中的这两行是用 String.fortmat() 格式化的字符串

04-19 13:57:44.918 26962-26962/ts.kiosk.app.checkout E/java.lang.StackTraceElement: "Tendered Amount:                    Rs.     0.00"
04-19 13:57:44.919 26962-26962/ts.kiosk.app.checkout E/java.lang.StackTraceElement: "Change Due:                         Rs.     0.00"

您可以看到两行的长度完全相同,但在文本视图中,字符串与它们的格式不完全相同:

String.format("%-25s Rs. %2$8.2f", "Tendered Amount:", formatCentsToCurrency(checkoutBasket.tenderedAmount));

String.format("%-25s Rs. %2$8.2f", "Change Due:", formatCentsToCurrency(checkoutBasket.changeDue));

所以这就是它在 TextView 中的对齐方式:

"Tendered Amount:                       Rs.     0.00"
"Change Due:                         Rs.     0.00"

我在想我的 TextView 以某种方式搞乱了格式:

                       <TextView
                        android:id="@+id/text_receipt"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        style="@style/popUpReceiptText"
                      android:text="@string/popup_detail_description_default"
                        android:gravity="left"
                        android:layout_gravity="center_horizontal"/>

实际文本编辑

对我来说,正确的答案,实际上很简单,我应该早点发现:

我简单地补充道:

android:typeface="monospace"

到我的 TextView

Android 设备默认不使用等宽字体,因此即使使用受控间距,也很难在同一个 TextView 中左右对齐。

您可以通过更改布局来解决此问题。 一个想法是实现每行2个TextViews,一个具有alignParentLeft=true ,而另一个具有alignParentRight=true一个内RelativeLayout

您可以尝试使用 TableLayout 来自动对齐行和列中的值,而不是使用 Textview。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM