Android center_vertical 重力不起作用

Posted

技术标签:

【中文标题】Android center_vertical 重力不起作用【英文标题】:Android center_vertical gravity not works 【发布时间】:2021-12-30 10:31:39 【问题描述】:

您好,我正在尝试将 tvGoldNametvGoldValue 设置为 ImageView 从左侧的高度并垂直居中。如何实现?

这是我的代码:

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

    <RelativeLayout
        android:layout_
        android:layout_
        android:layout_weight="5"
        android:gravity="right">

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

        <TextView
            android:id="@+id/tvGoldName"
            android:layout_
            android:layout_
            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_
        android:layout_
        android:layout_weight="5"
        android:gravity="left"
        android:paddingRight="10dp"
        android:text="0"
        android:textSize="21sp" />

</LinearLayout>

【问题讨论】:

【参考方案1】:

使两者具有与 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_

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

【讨论】:

看起来不错。我明天测试一下。如果效果很好,我会接受你的回答:)

以上是关于Android center_vertical 重力不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Android布局

Android属性总结

spinner的使用

Android五大布局常用属性

Android中LinearLayout线性布局

ImageButton选择器无法正常工作