2011-10-29 31 views
11

relative layoutBố cục tương đối. Giữa 2 mục

Làm cách nào để định vị một mục giữa 2 mục khác và căn chỉnh giữa các mục khác? (xin vui lòng xem nút màu đỏ trong hình trên) - Làm thế nào tôi có thể định vị nó giữa "Nút Trung tâm" và "Nút dưới cùng"?

Đây là mã của tôi tương đối bố trí:

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

    <Button 
     android:id="@+id/button_center" 
     android:text="Center" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_centerInParent="true"/> 

    <!-- The new button should be between these 2 items --> 

    <Button 
     android:id="@+id/button_bottom" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Bottom" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true"/> 

    <Button 
     android:id="@+id/button_top" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Top" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"/> 

    <Button 
     android:id="@+id/button_left" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Left" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true"/> 

    <Button 
     android:id="@+id/button_rignt" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Right" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true"/> 

    <Button 
     android:id="@+id/button_rel_right" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/button_right" 
     android:layout_alignTop="@id/button_rignt" 
     android:text="RelRight"/> 

    <Button 
     android:id="@+id/button_rel_left" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/button_left" 
     android:layout_alignTop="@id/button_left" 
     android:text="RelLeft"/> 

</RelativeLayout> 
+1

đăng xml bố cục của bạn. Giải pháp phụ thuộc vào xml của bạn –

Trả lời

24

Bạn sẽ cần thêm bố cục khác để nút chính xác ở giữa. Ví dụ: thêm hình thức này vào bố cục của bạn:

<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_above="@+id/button_bottom" 
    android:layout_alignLeft="@+id/button_center" 
    android:layout_alignRight="@+id/button_center" 
    android:layout_below="@id/button_center" > 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:text="new" /> 
</FrameLayout> 
-1

tôi đến giải pháp này:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <!-- centered button --> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"/> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 

     <Button android:text="CenteredButton" 
       android:id="@+id/centered_button"   
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center"/> 

    </FrameLayout> 
    </LinearLayout> 

</RelativeLayout> 

Chỉ cần sử dụng mã này với LinearLayout thay vì nút. Tôi nghĩ nó không phải là tốt nhất, nhưng nó là đủ tốt.

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