Đơn giản chỉ cần sử dụng RelativeLayout
hoặc FrameLayout
. Chế độ xem con cuối cùng sẽ phủ lên mọi thứ khác.
Android hỗ trợ một mẫu mà Cocoa Touch SDK không có: Quản lý bố cục.
Bố cục cho iPhone có nghĩa là đặt mọi thứ vào vị trí tuyệt đối (bên cạnh một số yếu tố căng thẳng). Bố cục trong android có nghĩa là trẻ em sẽ được đặt trong mối quan hệ với nhau.
Ví dụ (EditText thứ hai sẽ bao gồm hoàn toàn cái đầu tiên):
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/root_view">
<EditText
android:layout_width="fill_parent"
android:id="@+id/editText1"
android:layout_height="fill_parent">
</EditText>
<EditText
android:layout_width="fill_parent"
android:id="@+id/editText2"
android:layout_height="fill_parent">
<requestFocus></requestFocus>
</EditText>
</FrameLayout>
FrameLayout
là một số loại khung nhìn. Dành cho những trường hợp đặc biệt.
RelativeLayout
là khá mạnh mẽ. Bạn có thể xác định các quy tắc như Chế độ xem A phải căn chỉnh bố cục gốc dưới cùng , Chế độ xem B phải căn chỉnh A từ dưới lên trên , v.v.
Cập nhật dựa trên nhận xét
Thông thường bạn đặt nội dung bằng setContentView(R.layout.your_layout)
in onCreate
(nó sẽ làm tăng bố cục cho bạn). Bạn có thể làm điều đó theo cách thủ công và gọi điện setContentView(inflatedView)
, không có sự khác biệt.
Bản thân chế độ xem có thể là một chế độ xem đơn (giống như TextView
) hoặc một cấu trúc phân cấp bố cục phức tạp (các bố cục lồng nhau, vì tất cả các bố cục đều là các chế độ xem).
Sau khi gọi setContentView
hoạt động của bạn sẽ biết nội dung của nó trông như thế nào và bạn có thể sử dụng (FrameLayout) findViewById(R.id.root_view)
để truy xuất bất kỳ chế độ xem nào trong hệ thống phân cấp này (Mẫu chung (ClassOfTheViewWithThisId) findViewById(R.id.declared_id_of_view)
).
layoutinflater
để lấy mộtrelativelayout
tệp xml bố cục, làm cách nào để thêm nó vào chế độ xem nội dung? Có cách nào để tham chiếu đến chế độ xem nội dung không? Cảm ơn