如何将底部边距添加到相对布局内的父底部对齐按钮?

How to add a bottom margin to a parent bottom aligned button inside a relative layout?

我目前正在使用 android 工作室创建应用程序,但在屏幕右下角放置按钮时遇到问题。我选择用一些组件填充相对布局,并且 android:layout_marginRight="<x>dp" 到目前为止一直在使我能够阻止视图接触边缘。我成功使用它的示例如下所示(XML 悬停在右上角的按钮):

<RelativeLayout blah>
    <com.google.android.material.button.MaterialButton
        android:id="someID"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:align_parentEnd="true" 
        android:layout_marginEnd="20dp"
        android:layout_marginTop="20dp"
        and so on describing the button but no more geometric statements
    />
</RelativeLayout>

但是,当我对添加行 android:layout_alignParentBottom 和行 android:layout_marginBottom 的按钮执行相同操作时,底部边距线无效并且按钮粘在按钮的底部屏幕 - 这是罪犯: XML of a button next to android studio render.

有人可以解释为什么会发生这种情况以及如何解决吗?我试图在右下角放置一个按钮,其右侧和下方为 20dp,因此它 'hovers' 在那里。

这是我的 XML 目前的剩余部分:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:context=".MainActivity">

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/btn_add_review"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginEnd="20dp"
        android:layout_marginBottom="20dp"
        android:paddingBottom="20dp"
        android:clickable="true"       
        app:backgroundTint="@color/themeColorOrange"
        app:srcCompat="@drawable/ic_baseline_add_24" />
    
</RelativeLayout>

您可以简单地在您的 FloatingActionButton 周围放置一个 RelativeLayout,然后像这样给它一个 padding20dp

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:context=".MainActivity">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:paddingBottom="20dp"
        android:layout_height="wrap_content">

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/btn_add_review"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="20dp"
            android:clickable="true"
            app:backgroundTint="@color/themeColorOrange"
            app:srcCompat="@drawable/ic_baseline_add_24" />
    </RelativeLayout>
</RelativeLayout>

不幸的是 marginBottom 不能与 alignParentBottom 结合使用。