Câu trả lời:
Có thể áp dụng thuộc tính cho kích thước ngang hoặc dọc của View (điều khiển trực quan). Nó được sử dụng để đặt kích thước Chế độ xem hoặc Bố cục dựa trên nội dung hoặc kích thước của bố cục chính thay vì chỉ định rõ ràng một thứ nguyên.
fill_parent
(không dùng nữa và được đổi tên MATCH_PARENT
trong API Cấp 8 trở lên)
Đặt bố cục của tiện ích thành fill_parent sẽ buộc nó mở rộng để chiếm nhiều không gian có sẵn trong thành phần bố cục mà nó được đặt. Nó gần tương đương với việc đặt kiểu điều khiển của Windows Form Control Fill
.
Đặt bố cục hoặc điều khiển mức cao nhất thành fill_parent sẽ buộc nó chiếm toàn bộ màn hình.
wrap_content
Đặt kích thước của Chế độ xem thành quấn_content sẽ buộc nó chỉ mở rộng đủ xa để chứa các giá trị (hoặc điều khiển con) mà nó chứa. Đối với các điều khiển - như hộp văn bản (TextView) hoặc hình ảnh (ImageView) - điều này sẽ bao bọc văn bản hoặc hình ảnh được hiển thị. Đối với các thành phần bố cục, nó sẽ thay đổi kích thước bố cục để phù hợp với các điều khiển / bố cục được thêm vào như con của nó.
Nó gần tương đương với việc đặt thuộc tính của Windows Form Control Autosize
thành True.
Tài liệu trực tuyến
Có một số chi tiết trong tài liệu mã Android ở đây .
fill_parent
(deprecated) =match_parent
Đường viền của khung nhìn con mở rộng để khớp với đường viền của khung nhìn cha.
wrap_content
Đường viền của chế độ xem con kết thúc tốt đẹp xung quanh nội dung của chính nó.
Dưới đây là một số hình ảnh để làm cho mọi thứ rõ ràng hơn. Màu xanh lá cây và màu đỏ là TextViews
. Màu trắng là một LinearLayout
hiển thị thông qua.
Mỗi View
(a TextView
, an ImageView
, a Button
, v.v.) cần đặt width
và height
chế độ xem. Trong tệp bố cục xml, có thể trông như thế này:
android:layout_width="wrap_content"
android:layout_height="match_parent"
Bên cạnh việc đặt chiều rộng và chiều cao thành match_parent
hoặc wrap_content
, bạn cũng có thể đặt chúng thành một số giá trị tuyệt đối:
android:layout_width="100dp"
android:layout_height="200dp"
Tuy nhiên, nói chung điều đó không tốt bằng vì nó không linh hoạt cho các thiết bị có kích thước khác nhau. Sau khi bạn đã hiểu wrap_content
và match_parent
, điều tiếp theo cần học là layout_weight
.
Tuyến tính dọc
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=wrap height=wrap"
android:background="#c5e1b0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=match height=wrap"
android:background="#f6c0c0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=match height=match"
android:background="#c5e1b0"/>
</LinearLayout>
Tuyến tính ngang
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="WrapWrap"
android:background="#c5e1b0"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="WrapMatch"
android:background="#f6c0c0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="MatchMatch"
android:background="#c5e1b0"/>
</LinearLayout>
Giải thích trong câu trả lời này giả định rằng không có lề hoặc phần đệm . Nhưng ngay cả khi có, khái niệm cơ bản vẫn giống nhau. Đường viền / khoảng cách khung nhìn chỉ được điều chỉnh bởi giá trị của lề hoặc phần đệm.
fill_parent
sẽ làm cho chiều rộng hoặc chiều cao của phần tử lớn bằng phần tử cha, nói cách khác, vùng chứa.
wrap_content
sẽ làm cho chiều rộng hoặc chiều cao lớn đến mức cần thiết để chứa các phần tử bên trong nó.
fill_parent
:
Một thành phần được bố trí bố trí cho fill_parent
sẽ bắt buộc phải mở rộng để lấp đầy các thành viên đơn vị bố trí, càng nhiều càng tốt trong không gian. Điều này phù hợp với thuộc tính dockstyle của điều khiển Windows. Bố cục hoặc điều khiển được đặt ở trên cùng fill_parent
sẽ buộc nó chiếm toàn bộ màn hình.
wrap_content
Thiết lập chế độ xem kích thước wrap_content
sẽ buộc phải xem được mở rộng để hiển thị tất cả nội dung. Các TextView và ImageView điều khiển, ví dụ, được thiết lập để wrap_content
sẽ hiển thị toàn bộ nội dung và hình ảnh nội bộ của mình. Các yếu tố bố trí sẽ thay đổi kích thước theo nội dung. Thiết lập chế độ xem kích thước của thuộc tính Tự động wrap_content
tương đương để đặt điều khiển Windows cho True.
Để biết chi tiết Vui lòng kiểm tra liên kết này: http://developer.android.com/reference/android/view/Viewgroup.LayoutParams.html
fill_parent
đã được đổi tênmatch_parent
trong API Cấp 8 trở lên.