Android RelativeLayout marginBottom не работает

#android

#Android

Вопрос:

Я пытаюсь установить marginBottom для RelativeLayout:

 <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/parentView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:marginBottom="15dp"
    android:marginLeft="10dp"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:layout_marginRight="10dp"
    android:layout_marginTop="8dp">

    <!-- Rest of thelayout -->

</RelativeLayout>
 

Но marginBottom не имеет никакого эффекта. Почему?

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

1. Пожалуйста, добавьте больше описания вашего вопроса.

2. @Mohom. R Я думаю, вопрос ясен. Чего ты не понимаешь?

3. layout_marginBottom , layout_marginTop . Если это опечатка, исправьте ее, потому что она предлагает бесполезные ответы.

4. В случае полей родительский вид важен, поэтому вы должны поделиться своей оболочкой RelativeLayout .

Ответ №1:

Я не знаю почему, но marginBottom не работает, если вы установите для его высоты значение wrap_content .Вы можете выполнить следующие действия:

1) Установите его высоту на match_parent.

2) Используйте paddingBottom вместо marginBottom.

3) Вместо этого используйте LinearLayout.

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

1. @переполненное поле обрабатывается родительским макетом. Поскольку все имеет префикс layout_ . Если родительский элемент не поддерживает маржу, вы не получите маржу для дочерних представлений.

Ответ №2:

Если дочерние представления не заполняют экран, вы не можете наблюдать нижнее поле.

Вот почему высота должна быть «match_parent».

Если родительским представлением RelativeLayout является ScrollView, высота RelativeLayout должна быть «wrap_content» и добавить эту строку в ScrollView в xml.

android:fillViewport="true"

Также,

 android:marginBottom="15dp"
android:marginLeft="10dp"
 

неправильно. Попробуйте это,

 android:layout_marginBottom="15dp"
android:layout_marginLeft="10dp"
 

Ответ №3:

Исправьте свой атрибут, как показано ниже

 android:layout_height="match_parent"
    android:layout_marginBottom="15dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="8dp"
 

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

1. Это не android: marginBottom, а android:layout_marginBottom