2013-07-03 25 views
12

Tôi đã sau:Android tương đối bố trí class mẹ bố trí đúng

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/test_ll" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/background" 
android:orientation="vertical" > 

<RelativeLayout 
    android:id="@+id/main_layPanelCircle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical|center_horizontal" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="15dp" 
    android:background="@drawable/main_panel_a" 
    android:orientation="vertical" 
    android:padding="10dp" > 

    <ImageView 
     android:id="@+id/main_imgBreachAlert" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="5dp" /> 

    <Button 
     android:id="@+id/main_btnMap" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:background="@null" 
     android:drawableTop="@drawable/icon_find" 
     android:text="@string/main_locate" 
     android:textColor="@android:color/white" 
     android:textSize="10sp" /> 

    <LinearLayout 
     android:id="@+id/main_llPanelCycleMiddle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/main_btnMap" 
     android:layout_centerInParent="true" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/main_btnLeft" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null" 
      android:drawableTop="@drawable/icon_call" 
      android:text="@string/main_call" 
      android:textColor="@android:color/white" 
      android:textSize="10sp" 
      android:visibility="visible" /> 

     <Button 
      android:id="@+id/main_btnEmergency" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null" 
      android:drawableTop="@drawable/icon_emergency" 
      android:scaleType="center" 
      android:text="@string/main_emergency" 
      android:textColor="@android:color/white" 
      android:textSize="9sp" 
      android:textStyle="bold" /> 

     <Button 
      android:id="@+id/main_btnRight" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null" 
      android:drawableTop="@drawable/icon_store" 
      android:text="@string/main_store" 
      android:textColor="@android:color/white" 
      android:textSize="10sp" /> 
    </LinearLayout> 

    <Button 
     android:id="@+id/main_btnMore" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/main_llPanelCycleMiddle" 
     android:layout_centerHorizontal="true" 
     android:background="@null" 
     android:drawableTop="@drawable/icon_more" 
     android:text="@string/main_more" 
     android:textColor="@android:color/white" 
     android:textSize="10sp" /> 
</RelativeLayout> 

</LinearLayout> 

Khi tôi đặt main_imgBreachAlert android: layout_alignParentLeft = "true" eveerything là OK (hình ảnh trái) nhưng khi tôi đặt nó là tôi đúng trải dài bố trí tương đối (ảnh trái):

http://i.imgur.com/uDJqF0k.jpg?1

Ông có thể xin tư vấn làm thế nào tôi có thể khắc phục vấn đề này.

Thnx

+0

Bạn có căn chỉnh nó sang bên trái và bên phải cùng một lúc không? Nếu vậy, điều đó buộc nó để điền vào cha mẹ, ghi đè wrap_content (là ít hơn của hai tệ nạn, các tùy chọn khác sẽ được thu nhỏ bất cứ điều gì khác trong bố trí để cùng kích thước). –

+0

Bạn có tìm thấy câu trả lời cho câu hỏi của mình không? Iam chạy vào cùng một vấn đề chính xác – Snake

Trả lời

26

Hãy thử android:layout_centerInParent="true" và loại bỏ các thuộc tính alignParentLeft nếu bạn muốn hình ảnh làm trung tâm trong cách bố trí của bạn.

Nếu bạn chỉ muốn căn chỉnh nó ở bên phải, chỉ cần sử dụng android:layout_alignParentRight="true".

<ImageView 
    android:id="@+id/main_imgBreachAlert" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="5dp" /> 
+2

Tôi muốn đặt hình ảnh ở bên phải không căn giữa. – Damir

+1

Sau đó, chỉ sử dụng android: alignParentRight = "true" và xóa thuộc tính alignParentLeft. – Flynn81

+2

Nếu tôi thiết lập alignParentRight hơn nó kéo dài cha mẹ trong đó kiểm soát này được in Tôi mỏng rằng cách tiếp cận của tôi là sai. Tôi thực sự muốn thiết lập bố trí nền và bố trí bọc xung quanh nền đó và hơn đặt điều khiển khác bên trong bố trí đó nhưng nó nên ở lại gói xung quanh hình nền. Nếu điều này có ý nghĩa gì. – Damir

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