2010-07-09 25 views
16

Tôi muốn tạo hoạt động có thanh tiêu đề ở trên cùng và thanh điều hướng ở dưới cùng. Tôi đã sử dụng include để bao gồm bố cục thanh tiêu đề và bố cục thanh điều hướng vào bố cục chính như bạn có thể thấy bên dưới. Kết quả là cả thanh tiêu đề và thanh điều hướng chuyển lên đầu màn hình. Ai đó có thể cho tôi biết tại sao? Cảm ơn!Điều gì xảy ra với sự bao gồm của tôi trong RelativeLayout?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/home_widget" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background"> 

    <include android:id="@+id/title_bar" layout="@layout/title_bar" 
     android:layout_alignParentTop="true" /> 

    <include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" 
     android:layout_alignParentBottom="true"/> 
</RelativeLayout> 

[Chỉnh sửa] Tôi không tìm thấy nguyên nhân gốc rễ. Nhưng các công trình sau:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/home_widget" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background"> 

<RelativeLayout android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:id="@+id/title_bar" > 

    <include layout="@layout/title_bar" /> 
</RelativeLayout> 

<RelativeLayout android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:id="@+id/navigation_bar" > 

    <include layout="@layout/navigation_bar" /> 
</RelativeLayout> 
+0

bạn đang ở trong một RelativeLayout, tôi nghĩ rằng bạn quên android: layout_below = "@ id/title_bar" cho thanh nav của bạn – Sephy

+1

Vui lòng cập nhật câu hỏi của bạn để hiển thị các nội dung của 'res/layout/title_bar .xml' và 'res/layout/navigation_bar.xml', sau đó quay lại @ me. – CommonsWare

Trả lời

0

Bạn không có gì để lấp đầy khoảng trống giữa thanh trên cùng và dưới cùng bằng giao diện của nó.

Như một bên, tôi có xu hướng sử dụng LinearLayout thay thế và sử dụng thuộc tính layout_weight theo cách sau;

title_bar & navigation_bar get layout_weight = "0" và nội dung giữa hai được layout_weight = "1". Điều này cho trình quản lý bố cục mở rộng nội dung để lấp đầy khoảng trống giữa hai nếu bố cục tuyến tính của bạn là;

title_bar nội dung navigation_bar

44

Để ghi đè các thuộc tính của cách bố trí bạn đang kể, bạn cũng phải ghi đè lên cả chiều rộng và chiều cao bố trí bố trí. Nếu cả hai cài đặt đó không bị ghi đè, mọi thay đổi bố cục khác bạn thử sẽ bị bỏ qua.

bố trí của bạn trên

<include android:id="@+id/title_bar" layout="@layout/title_bar" 
    android:layout_alignParentTop="true" 
/> 
<include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" 
    android:layout_alignParentBottom="true"/> 

nên thực sự có thể có hàm bọc hoặc điền phụ huynh, khi thích hợp.

<include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true"/> 
+0

uggh quá câm, tái khai báo layout_width & layout_height trong bố cục sử dụng bao gồm. Nó hoạt động mặc dù. –

+0

wow, không biết điều đó. mẹo tuyệt vời. bao gồm của tôi đã không được định vị trong một bố trí tương đối và thiết lập chiều rộng và chiều cao làm cho nó tôn trọng dòng chảy bố trí. cảm ơn – speedynomads

+1

điều này phải là câu trả lời được chấp nhận – d370urn3ur

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