首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android TextView 多行文本換行與對齊:StringBuilder 正確使用 \n 與布局技巧

     編輯:程式設計綜合問答

常見錯誤

// 錯誤:使用 /n 而非 \n
textView.setText("姓名:張三/n性別:男/n電話:13800000000");

正確寫法

方式一:StringBuilder 拼接 \n

StringBuilder sb = new StringBuilder();
sb.append("姓名:張三").append("\n");
sb.append("性別:男").append("\n");
sb.append("電話:13800000000");
textView.setText(sb.toString());

方式二:XML 字符串資源(推薦國際化)

<!-- res/values/strings.xml -->
<string name="user_info">姓名:%1$s\n性別:%2$s\n電話:%3$s</string>

<!-- Java -->
String info = getString(R.string.user_info, "張三", "男", "13800000000");
textView.setText(info);

對齊技巧

  • 等寬字體:`android:fontFamily="monospace"` 使數字/字母等寬,天然對齊。
  • 帶佔位符格式化:`String.format("%-6s:%s\n", "姓名", "張三")` 左對齊固定寬度。
  • 多個 TextView + LinearLayout:每行一個 TextView,`layout_weight="1"` 等寬,`gravity="end|start"` 對齊標籤與值。

為何推薦 StringBuilder

字符串拼接 + 會產生大量中間 String 對象,StringBuilder 內部可擴容字符數組,單線程下性能優於 StringBuffer,編譯器優化也優先識別它。詳見:String vs StringBuilder 深度解析

XML 屬性補充

<TextView
    android:id="@+id/tv_info"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:lineSpacingMultiplier="1.2"
    android:fontFamily="monospace"
    android:textSize="16sp" />
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved