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

您好,我正在尝试将 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>

【问题讨论】:

    标签: android android-layout


    【解决方案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_height="match_parent"
    

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

    【讨论】:

    • 看起来不错。我明天测试一下。如果效果很好,我会接受你的回答:)
    猜你喜欢
    • 2013-09-01
    • 2017-02-02
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    相关资源
    最近更新 更多