Нижнее поле или отступы не работают в относительной компоновке в xml на андроиде

У меня есть RelativeLayout для строки, которая находится внутри ListView. Строка выглядит так:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1" 
    android:layout_width="wrap_content"
    android:layout_height="fill_parent">

    <ImageView
        android:id="@+id/placeDetailIcon_Img"
        android:layout_height="50dp"
        android:layout_width="50dp"
        android:layout_alignParentLeft="true" 
        android:paddingBottom="20dp"
        android:paddingTop="20dp" 
        android:paddingLeft="20dp"
        android:paddingRight="20dp"/>
</RelativeLayout>

Я также попробовал его с полем:

 <ImageView
    android:layout_height="50dp"
    android:layout_width="50dp"
    android:id="@+id/placeDetailIcon_Img" 
    android:layout_alignParentLeft="true" 
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginBottom="10dp">

Не применяйте маржу или дополнение к ImageView. Как создать такой тип интервала?

Ответ 1

вы можете использовать эту работу со мной:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">  

     <ImageView
         android:id="@+id/imageView1"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_alignParentLeft="true"
         android:layout_alignParentTop="true"
         android:layout_marginLeft="15dp"
         android:layout_marginTop="15dp" />

</RelativeLayout>

надеюсь, что это поможет.

Ответ 2

Для всех, кто ищет решение этого - из документов:

http://developer.android.com/reference/android/widget/RelativeLayout.html

"Обратите внимание, что вы не можете иметь круговую зависимость между размером RelativeLayout и положением своих детей. Например, вы не можете иметь RelativeLayout, высота которого установлена ​​на WRAP_CONTENT, а дочерний элемент установлен на ALIGN_PARENT_BOTTOM."

Похоже, что существует некоторое нечетное поведение, если вы помещаете relativeView внутри прокрутки.

В моем случае я установил relativeLayout для wrap_content, а затем попытался добавить marginBottom в ImageView с атрибутом ALIGN_PARENT_BOTTOM. Когда я задал высоту явно, она наконец-то сработала.

Ответ 3

Я предлагаю вам использовать LinearLayout... Или вы можете попытаться удалить атрибут: android:layout_alignParentLeft="true"

Если вы хотите центрировать представление в RelativeLayout, вы можете использовать:

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"