You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android布局center_vertical属性不生效 如何让TextView与ImageView垂直居中对齐

您好,我希望让tvGoldName和tvGoldValue两个控件与左侧的ImageView高度保持一致,并且实现垂直居中对齐,请问该如何实现?

界面示意图

我的布局代码如下:

<LinearLayout
    android:id="@+id/llGold"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/llToNextLevel"
    android:orientation="horizontal"
    android:layout_gravity="center_vertical"
    android:weightSum="10">

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:gravity="right">

        <ImageView
            android:id="@+id/ivGoldIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingRight="10dp"
            android:src="@mipmap/coins"
            android:textColor="#FFFF00"
            android:textSize="21sp" />

        <TextView
            android:id="@+id/tvGoldName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/ivGoldIcon"
            android:gravity="right|center_vertical"
            android:paddingRight="10dp"
            android:text="@string/gold"
            android:textColor="#FFFF00"
            android:textSize="21sp" />

    </RelativeLayout>

    <TextView
        android:id="@+id/tvGoldValue"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:gravity="left"
        android:paddingRight="10dp"
        android:text="0"
        android:textSize="21sp" />

</LinearLayout>

解决方案

你可以通过以下修改实现需求:

  • 调整最外层LinearLayout属性,新增android:gravity="center_vertical",原本的android:layout_gravity="center_vertical"仅控制该布局自身在父容器的位置,新增的属性才会控制内部所有子元素垂直居中对齐。
  • 给tvGoldName添加两个对齐规则,让它的上下边界和左侧ImageView完全对齐,高度保持一致,配合已有的android:gravity="center_vertical"就能实现文字垂直居中:
    android:layout_alignTop="@id/ivGoldIcon"
    android:layout_alignBottom="@id/ivGoldIcon"
    
  • 给右侧tvGoldValue的gravity属性新增center_vertical,进一步保证文字垂直居中。

修改后的完整代码如下:

<LinearLayout
    android:id="@+id/llGold"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/llToNextLevel"
    android:orientation="horizontal"
    android:layout_gravity="center_vertical"
    android:gravity="center_vertical"
    android:weightSum="10">

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:gravity="right">

        <ImageView
            android:id="@+id/ivGoldIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingRight="10dp"
            android:src="@mipmap/coins"
            android:textColor="#FFFF00"
            android:textSize="21sp" />

        <TextView
            android:id="@+id/tvGoldName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/ivGoldIcon"
            android:layout_alignTop="@id/ivGoldIcon"
            android:layout_alignBottom="@id/ivGoldIcon"
            android:gravity="right|center_vertical"
            android:paddingRight="10dp"
            android:text="@string/gold"
            android:textColor="#FFFF00"
            android:textSize="21sp" />

    </RelativeLayout>

    <TextView
        android:id="@+id/tvGoldValue"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:gravity="left|center_vertical"
        android:paddingRight="10dp"
        android:text="0"
        android:textSize="21sp" />

</LinearLayout>

内容的提问来源于stack exchange,提问作者user21597761

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:54:03