Android center_vertical 重力不起作用

Android center_vertical gravity not works

您好,我正在尝试使 tvGoldNametvGoldValue 成为 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>

要使两者与 ImageView 具有相同的高度:

由于 tvGoldNameRelativeLayout 中,因此将其顶部和底部与 ImageView:

对齐
<TextView
    android:id="@+id/tvGoldName"
    android:layout_alignBottom="@+id/ivGoldIcon"
    android:layout_alignTop="@id/ivGoldIcon"

因为 tvGoldValue 在父 LinearLayout 中,那么:

将其高度设置为match_parent,并与center_vertical重力垂直对齐:

<TextView
    android:gravity="center_vertical"
    android:gravity="center_vertical"
    android:layout_height="match_parent"

但一般来说,您应该使用 ConstraintLayout 来获得没有嵌套视图的平面设计;由于 RelativeLayout 存在性能问题。