RelativeLayout 中 TextView 設置 layout_below="@id/icon" 但無法水平居中於 ImageView 下方。
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/icon"
android:layout_centerHorizontal="true" <!-- 關鍵屬性 -->
android:singleLine="true"
android:textColor="@color/white" />
layout_below 僅控制垂直位置(在 ImageView 下方)。layout_centerHorizontal="true" 告訴父佈局:在水平方向將本 View 置於**父佈局中心**。因 ImageView 通常也置於父佈局中心(或未指定水平約束時默認居中),文字即視覺上居中於圖片下方。改用 layout_alignLeft="@id/icon" + layout_alignRight="@id/icon" 使 TextView 水平範圍與 ImageView 一致,再配合 gravity="center" 實現文字居中。
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/icon"
android:layout_centerHorizontal="true"
android:singleLine="true"
android:textColor="@color/white" />
</RelativeLayout>