Jawaban:
Atribut mana pun dapat diterapkan pada tampilan (kontrol visual) horizontal atau vertikal. Ini digunakan untuk mengatur ukuran Tampilan atau Tata Letak berdasarkan konten atau ukuran tata letak induknya daripada menentukan dimensi secara eksplisit.
fill_parent
(tidak digunakan lagi dan diganti namanya MATCH_PARENT
di API Level 8 dan lebih tinggi)
Mengatur tata letak widget ke fill_parent akan memaksanya meluas untuk mengambil ruang sebanyak yang tersedia di dalam elemen tata letak tempat ia ditempatkan. Ini kira-kira setara dengan mengatur gaya dermaga Kontrol Bentuk Windows ke Fill
.
Mengatur tata letak tingkat atas atau kontrol ke fill_parent akan memaksanya untuk mengambil seluruh layar.
wrap_content
Mengatur ukuran tampilan ke wrap_content akan memaksanya untuk memperluas hanya cukup jauh untuk mengandung nilai-nilai (atau kontrol anak) yang dikandungnya. Untuk kontrol - seperti kotak teks (TextView) atau gambar (ImageView) - ini akan membungkus teks atau gambar yang sedang ditampilkan. Untuk elemen tata letak, itu akan mengubah ukuran tata letak agar sesuai dengan kontrol / tata letak ditambahkan sebagai anak-anaknya.
Ini kira-kira setara dengan menyetel properti Windows Form Control Autosize
ke True.
Dokumentasi Online
Ada beberapa detail dalam dokumentasi kode Android di sini .
fill_parent
(usang) =match_parent
Batas tampilan anak diperluas untuk mencocokkan perbatasan tampilan induk.
wrap_content
Batas tampilan anak membungkus kontennya sendiri.
Berikut adalah beberapa gambar untuk membuat semuanya lebih jelas. Hijau dan merah TextViews
. Putih LinearLayout
menunjukkan melalui.
Setiap View
(a TextView
, an ImageView
, a Button
, dll.) Perlu mengatur width
dan height
tampilan. Di file tata letak xml, yang mungkin terlihat seperti ini:
android:layout_width="wrap_content"
android:layout_height="match_parent"
Selain mengatur lebar dan tinggi ke match_parent
atau wrap_content
, Anda juga bisa mengaturnya ke beberapa nilai absolut:
android:layout_width="100dp"
android:layout_height="200dp"
Namun, secara umum itu tidak sebagus karena tidak fleksibel untuk perangkat dengan ukuran berbeda. Setelah Anda mengerti wrap_content
dan match_parent
, hal selanjutnya yang harus dipelajari adalah layout_weight
.
LinearLayout Vertikal
<?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>
LinearLayout Horisontal
<?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>
Penjelasan dalam jawaban ini mengasumsikan tidak ada margin atau bantalan . Tetapi kalaupun ada, konsep dasarnya masih sama. Batas tampilan / spasi hanya disesuaikan dengan nilai margin atau padding.
fill_parent
akan membuat lebar atau tinggi elemen menjadi sebesar elemen induk, dengan kata lain, wadah.
wrap_content
akan membuat lebar atau tinggi menjadi sebesar yang dibutuhkan untuk mengandung elemen-elemen di dalamnya.
fill_parent
:
Komponen tata letak diatur untuk fill_parent
akan wajib diperluas untuk mengisi anggota unit tata letak, sebanyak mungkin di ruang. Ini konsisten dengan properti dockstyle dari kontrol Windows. Tata letak atau kontrol yang ditetapkan atas fill_parent
akan memaksanya untuk mengambil seluruh layar.
wrap_content
Siapkan tampilan ukuran wrap_content
akan dipaksa untuk melihat diperluas untuk menampilkan semua konten. The TextView dan ImageView kontrol, misalnya, diatur untuk wrap_content
akan menampilkan seluruh teks dan gambar internal. Elemen tata letak akan mengubah ukuran sesuai dengan konten. Siapkan tampilan ukuran atribut Autosize yang wrap_content
kurang lebih setara untuk mengatur kontrol Windows untuk True.
Untuk perinciannya Silakan Periksa tautan ini: http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
fill_parent
namanya diubahmatch_parent
di API Level 8 dan lebih tinggi.