開發者使用 LinearLayout 容器但設置 android:orientation="horizontal",導致多個 TextView 水平排列擠在一行,需求是每個文本佔據獨立一行垂直排列。
<LinearLayout
android:id="@+id/widget38"
xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:orientation="vertical" > <!-- 關鍵修改:horizontal -> vertical -->
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textSize="30sp" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp" />
<TextView
android:id="@+id/text_separator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" - "
android:textSize="30sp" />
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp" />
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp" />
</LinearLayout>
| 屬性 | 值 | 效果 |
|---|---|---|
| android:orientation | vertical | 子視圖垂直排列(從上到下),每行一個 |
| android:orientation | horizontal | 子視圖水平排列(從左到右),同一行 |
| android:layout_width | match_parent | 佔滿父容器寬度,文本可靠左/居中/靠右 |
| android:layout_height | wrap_content | 高度自適應文本內容 |
若文本內容固定格式(如「姓名 時間 星期」),可用單個 TextView 配合 \n 換行符:
<TextView
android:id="@+id/tv_combined"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:lineSpacingExtra="4dp" /> <!-- 行間距 -->
String combinedText = "隨機名稱\n10.20 - 11.30\nMonday\ntue";
textView.setText(combinedText);
// 或從 strings.xml 獲取格式化字符串
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/tv1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView android:id="@+id/tv2"
app:layout_constraintTop_toBottomOf="@id/tv1"
app:layout_constraintStart_toStartOf="parent" />
<TextView android:id="@+id/tv3"
app:layout_constraintTop_toBottomOf="@id/tv2"
app:layout_constraintStart_toStartOf="parent" />
<TextView android:id="@+id/tv4"
app:layout_constraintTop_toBottomOf="@id/tv3"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
LinearLayout 缺少 orientation 屬性(默認 horizontal)layout_width="match_parent" 但父容器未設置寬度android:id(示例中 text6 出現兩次)TextView 設置 android:orientation(TextView 不支持此屬性)