如何在 RelativeLayout 中使两个元素底部对齐?

how to make two elements bottom align in RelativeLayout?

RelativeLayout 中的一个 ImageView 和三个 TextView。
我想要的是使 imageview 和 '6.4MB' TextView 底部对齐。
activity_main.xml

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_marginTop="15dp"
        android:layout_height="match_parent">
        <ImageView
            android:src="@drawable/screenshot"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/screenShot"
            android:layout_alignParentLeft="true"
            android:layout_marginRight="10dp"/>
        <TextView
            android:text="Video Name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dp"
            android:textSize="23dp"
            android:textColor="#000000"
            android:id="@+id/videoName"
            android:layout_toRightOf="@id/screenShot"
            android:layout_alignParentTop="true"/>
        <TextView
            android:text="2021.05.19 · 5:11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dp"
            android:textSize="15dp"
            android:textColor="#797675"
            android:id="@+id/recordDate"
            android:layout_toRightOf="@id/screenShot"
            android:layout_below="@id/videoName"/>

        <TextView
            android:text="6.4 MB"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dp"
            android:textSize="15dp"
            android:textColor="#797675"
            android:id="@+id/videoSize"
            android:layout_toRightOf="@id/screenShot"
            android:layout_below="@id/recordDate"
            android:layout_alignBottom="@id/screenShot"
            />
    </RelativeLayout>

android:layout_alignBottom="@id/screenShot" 不起作用。
有人可以帮忙吗?

Make 很简单,只需使用 LinearLayout 代替 RelativeLayout 替换代码,并在 linearLayout 中使用 weightSum。删除冗余代码并使其简短。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="10">

    <ImageView
        android:id="@+id/screenShot"
        android:layout_width="0dp"
        android:layout_height="80dp"
        android:layout_alignParentLeft="true"
        android:layout_marginRight="10dp"
        android:layout_weight="2"
        android:src="@drawable/screenshot" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="8"
        android:orientation="vertical">

        <TextView
            android:id="@+id/videoName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dp"
            android:text="Video Name"
            android:textColor="#000000"
            android:textSize="23dp" />

        <TextView
            android:id="@+id/recordDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dp"
            android:text="2021.05.19 · 5:11"
            android:textColor="#797675"
            android:textSize="15dp" />

        <TextView
            android:id="@+id/videoSize"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dp"
            android:text="6.4 MB"
            android:textColor="#797675"
            android:textSize="15dp" />

    </LinearLayout>
</LinearLayout>
<TextView
    android:text="6.4 MB"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="0dp"
    android:textSize="15dp"
    android:textColor="#797675"
    android:id="@+id/videoSize"
    android:layout_below="@+id/screenShot"
    />

我没有完全理解您的要求,但是如果您想将 6.4 MB 文本放在 ImageView 下方,您需要更改 TextView 属性。

android:layout_alignBottom="@id/screenShot" does not work

因为您还添加了android:layout_below="@id/recordDate"

如果您将删除此 layout_below 属性 那么 layout_alignBottom 将按预期工作。

但是当您删除 layout_below 时,它可能看起来很奇怪。所以你必须根据那个做出改变

编辑

如果您不想删除 layout_below,那么向底部添加重力也可能对您有用。因为这会将文本对齐到底部

android:gravity="bottom"