2012-04-19 37 views
11

Tôi có một RelativeLayout cho một hàng nằm trong một ListView. Hàng có vẻ như,lề dưới hoặc đệm không hoạt động trong bố cục tương đối trong xml trên android

<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> 

Tôi cũng đã thử nó với margin:

<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"> 

Không áp dụng margin hoặc padding xung quanh ImageView. Làm cách nào để tạo loại khoảng cách này?

+0

RelativeLayout 'android: layout_height =" wrap_content "'? – zapl

+0

Và cũng loại bỏ 'RelativeLayout' nếu các mục trong danh sách của bạn sẽ được biểu diễn bằng một khung nhìn. –

Trả lời

5

bạn có thể sử dụng công việc này với tôi:

<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> 

hy vọng điều này sẽ hữu ích.

+0

tại sao android: layout_marginTạo công việc và android: paddingTop không? – user2512888

0

tôi đề nghị bạn sử dụng LinearLayout ... Hoặc bạn có thể thử để loại bỏ các thuộc tính: android:layout_alignParentLeft="true"

Nếu bạn muốn tập trung xem trong một RelativeLayout bạn có thể sử dụng:

android:layout_centerHorizontal="true" 
android:layout_centerVertical="true" 
+2

android: layout_centerInParent = "true" thực hiện cả hai thứ đó trong một lần :) – vm204

2

Đối với bất kỳ ai khác đang tìm kiếm một giải pháp này - từ các tài liệu:

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

"Lưu ý rằng bạn không thể có một phụ thuộc vòng tròn giữa kích thước của RelativeLayout và vị trí của con của nó Ví dụ: bạn không thể có RelativeLayout có chiều cao được đặt thành WRAP_CONTENT và một tập con được đặt thành ALIGN_PARENT_BOTTOM. "

Dường như cũng có một số hành vi kỳ lạ nếu bạn đặt một đối tượng bên trong của một scrollview.

Trong trường hợp của tôi, tôi đã đặt relativeLayout thành wrap_content và sau đó cố gắng thêm marginBottom vào một ImageView với thuộc tính ALIGN_PARENT_BOTTOM. Khi tôi thiết lập chiều cao một cách rõ ràng nó cuối cùng đã làm việc.

Các vấn đề liên quan