Как добавить нижнее поле к родительской кнопке, выровненной по нижнему краю, внутри относительного макета?

#android #button #android-relativelayout #margins #bottom

#Android #кнопка #android-relativelayout #прибыль #дно

Вопрос:

В настоящее время я использую студию Android для создания приложения, но у меня возникли проблемы с размещением кнопки в правом нижнем углу экрана. Я решил заполнить относительную компоновку несколькими компонентами, и до android:layout_marginRight="lt;xgt;dp" сих пор это помогало мне не допускать соприкосновения видов с краями. Пример того, где я успешно использовал его, выглядит так (XML для кнопки, которая находится в правом верхнем углу):

 lt;RelativeLayout blahgt;  lt;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  /gt; lt;/RelativeLayoutgt;  

Однако, когда я делаю то же самое для кнопки, которую я добавляю, строка android:layout_alignParentBottom и android:layout_marginBottom строка, строка нижнего поля не эффективны, и кнопка приклеена к нижней части экрана — вот нарушитель: XML кнопки рядом с рендерингом Android studio.

Пожалуйста, кто-нибудь может объяснить, почему это происходит и как это исправить? Я пытаюсь разместить кнопку в правом нижнем углу с 20dp справа от нее и под ней, чтобы она «зависала» там.

Вот остальная часть моего XML в том виде, в каком она есть в настоящее время:

 lt;?xml version="1.0" encoding="utf-8"?gt; lt;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"gt;   lt;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" /gt;   lt;/RelativeLayoutgt;  

Комментарии:

1. Можете ли вы поделиться своим XML-файлом?

2. @Tiko Я добавил это к основанию моего вопроса для вас.

Ответ №1:

Вы можете просто обвести себя RelativeLayout вокруг пальца FloatingActionButton и сделать это padding 20dp примерно так:

 lt;?xml version="1.0" encoding="utf-8"?gt; lt;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"gt;   lt;RelativeLayout  android:layout_width="wrap_content"  android:paddingBottom="20dp"  android:layout_height="wrap_content"gt;   lt;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" /gt;  lt;/RelativeLayoutgt; lt;/RelativeLayoutgt;  

К сожалению marginBottom , не работает в сочетании с alignParentBottom .

Комментарии:

1. Я вижу, большое вам спасибо — странно, что это не работает.

2. Пожалуйста. Не стесняйтесь отмечать ответ как правильный, чтобы помочь другим найти его быстрее. Счастливого кодирования! 🙂