需求:垂直 LinearLayout 內,將「時間」與「年齡」兩個 TextView 放在同一水平行,其餘保持垂直排列。
<LinearLayout xmlns:android="..."
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView android:id="@+id/imgLink" ... />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/title" ... />
<!-- 關鍵:水平容器包裹 time 和 age -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Time"
android:textSize="8sp" />
<TextView
android:id="@+id/age"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp" <!-- 間距 -->
android:text="Age"
android:textSize="8sp" />
</LinearLayout>
<TextView android:id="@+id/information" ... />
</LinearLayout>
</LinearLayout>
orientation="vertical" 保持整體垂直流。orientation="horizontal" 實現同行並排。layout_marginStart(或 layout_marginLeft)控制間距。layout_width="wrap_content" 讓文本自適應寬度。<ConstraintLayout ...>
<TextView android:id="@+id/title" ... />
<TextView android:id="@+id/time"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintStart_toStartOf="parent" />
<TextView android:id="@+id/age"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintStart_toEndOf="@id/time"
android:layout_marginStart="10dp" />
<TextView android:id="@+id/information"
app:layout_constraintTop_toBottomOf="@id/time" />
</ConstraintLayout>
優點:無嵌套、渲染更快、響應式約束更強。
「垂直流中局部水平」= 在垂直容器插入水平容器。掌握嵌套模式,或遷移 ConstraintLayout 獲得更優體驗。