2012-10-22 10 views
6

Tôi đang cố gắng để có được một bố cục mà trông giống như sau:Sử dụng layout_alignBaseline và layout_alignBottom trong RelativeLayout cùng

Relative layout example

Đó là:

  1. TextView thẳng hàng (với lợi tức) để cha mẹ trái và trên.
  2. An EditText ở bên trái của TextView, ở bên phải của Button và căn chỉnh theo hướng với TextView.
  3. A Button căn chỉnh (chỉ với lề phải) cho quyền cha mẹ. Và đây là phần bị hỏng: căn dưới cùng với EditText.

Vì lý do nào nó không hoạt động. Dưới đây là đoạn code tôi mong đợi để làm việc:

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

    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="32dp" 
     android:layout_marginTop="32dp" 
     android:text="Text:" /> 

    <EditText 
     android:id="@+id/edit" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/text" 
     android:layout_toLeftOf="@+id/button" 
     android:layout_toRightOf="@+id/text" 
     android:ems="10" > 

     <requestFocus /> 
    </EditText> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignBottom="@+id/edit" 
     android:layout_marginRight="32dp" 
     android:text="Ok" /> 

</RelativeLayout> 

Đó đi ra như thế này:

Broken RelativeLayout

gì đang xảy ra?

Sửa

Xin lỗi tôi không chắc chắn lý do tại sao tôi đã thay đổi ví dụ này, nhưng trong mã của tôi Tôi đang thực sự sử dụng một ImageButton, không Button, vì vậy giải pháp không thể liên quan đến việc xếp thẳng với đường cơ sở của các nút - số EditText phải được căn chỉnh với nút dưới cùng (hoặc giữa nếu có thể) của nút.

+0

có thể có một lề đến từ một chủ đề? – njzk2

+0

Nope ............ – Timmmm

Trả lời

4

Hãy thử điều này ..

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

<TextView 
    android:id="@+id/text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="32dp" 
    android:layout_marginTop="32dp" 
    android:text="Text:" /> 


<EditText 
    android:id="@+id/edit" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/text" 
    android:layout_toLeftOf="@+id/button" 
    android:layout_toRightOf="@+id/text" 
    android:ems="10" > 

    <requestFocus /> 
</EditText> 

<Button 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/edit" 
    android:layout_alignBottom="@+id/edit" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="30dp" 
    android:text="Ok" /> 

+0

Thực tế là các công trình nhưng chỉ vì nút có đường cơ sở, tôi đã sử dụng một ví dụ xấu trong câu hỏi của mình (xin lỗi!) - thực ra tôi đang sử dụng 'ImageButton', chứ không phải một 'Nút'. – Timmmm

+0

vậy thì sao? nó cũng sẽ hoạt động với ImageButton. alignBaseline + alignBottom sẽ luôn ở dưới cùng của 1 dòng – AndrewS