如何将底部边距添加到相对布局内的父底部对齐按钮?
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
,然后像这样给它一个 padding
的 20dp
:
<?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
结合使用。
我目前正在使用 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
,然后像这样给它一个 padding
的 20dp
:
<?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
结合使用。