Pertanyaan Apa perbedaan antara match_parent dan fill_parent?


Saya agak bingung tentang dua properti XML: match_parent dan fill_parent. Tampaknya keduanya sama. Apakah ada perbedaan di antara mereka?


1262
2018-04-23 03:31


asal


Jawaban:


Mereka adalah hal yang sama (di API Level 8+). Menggunakan match_parent.

FILL_PARENT (diganti namanya MATCH_PARENT di API Level 8 dan lebih tinggi), yang berarti bahwa tampilan ingin sebesar induknya (tanpa padding)

...

fill_parent: Tampilan harus sebesar induknya (minus padding). Konstanta ini ditinggalkan mulai dari API Level 8 dan digantikan oleh match_parent.

http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html


1158
2018-04-23 03:33



Google mengubah nama untuk menghindari kebingungan.

Masalah dengan nama lama fill parent adalah bahwa itu berarti yang mempengaruhi dimensi orang tua, sementara match parent lebih baik menggambarkan perilaku yang dihasilkan - cocokkan dimensi dengan orang tua.

Kedua konstanta memutuskan untuk -1 pada akhirnya, sehingga menghasilkan perilaku yang identik dalam aplikasi. Ironisnya, perubahan nama ini dibuat untuk memperjelas hal-hal yang tampaknya telah menambah kebingungan daripada menghilangkannya.


228
2017-12-11 13:23



Secara fungsional tidak ada perbedaan, Google hanya mengubah nama dari fill_parent ke match_parent, dari API level 8 (Android 2.2). FILL_PARENT masih tersedia untuk alasan kompatibilitas.

LayoutParams.FILL_PARENT dan LayoutParams.MATCH_PARENT keduanya memiliki nilai -1. Tidak yakin apa yang menggoda google untuk berubah dari Isi Orang Tua ke Orang Tua yang Cocok :)

Karena sebagian besar phones are >= Android 2.2 .. Anda harus menggunakan Parent Match untuk kompatibilitas di masa mendatang ... tidak yakin kapan mereka akan menghentikan konstanta Old Induk yang lebih lama!


22
2017-09-20 07:25



Demi kesesuaian, lebih baik tetap menggunakan fill_parent, yaitu saat mendukung di bawah perangkat API 8. Tetapi jika aplikasi Anda menargetkan API 8 dan ke atas, Anda harus menggunakan match_parent sebagai gantinya.


10
2017-07-02 10:49



fill_parent (diganti namanya MATCH_PARENT di Tingkat API 8 dan lebih tinggi), yang berarti bahwa tampilan ingin menjadi sebesar induknya (minus padding)

fill_parent: Tampilan harus sebesar induknya (minus padding). Konstanta ini sudah ditinggalkan mulai dari Tingkat API 8 dan digantikan oleh match_parent

Untuk Android API 1,6 untuk 2.1  match_parent akan melemparkan Anda kesalahan, jadi gunakan fill_parent dalam kasus-kasus ini. Untuk mendukung kompatibilitas mundur, lebih baik digunakan fill_parent

  • Keduanya merupakan konstanta akhir statis yang mewakili nilai -1
  • FILL_PARENT tidak lagi digunakan di tingkat API 8

Jadi MATCH_PARENT dan FILL_PARENT itu sama?

Iya nih, MATCH_PARENT dan FILL_PARENT hanya nama-nama konstan yang berbeda untuk nilai integer yang sama (-1 jika Anda ingin tahu) digunakan untuk menentukan mode tata letak View dalam induknya.

Jadi mengapa MATCH_PARENT ditambahkan?

Saya ingat bahwa Roman Guy (Pengembang Android di Google) mengatakan, bahwa mereka telah mengubah nama karena "fill_parent"membingungkan bagi pengembang. Sebagai soal fakta,"fill_parent"Tidak mengisi ruang yang tersisa (untuk itu Anda menggunakan atribut berat) tetapi butuh ruang sebanyak induk tata letak. Itulah mengapa nama baru itu"match_parent"


10
2018-05-23 07:19



MATCH_PARENT dan FILL_PARENTadalah sama?

Iya nih, MATCH_PARENT dan FILL_PARENT hanya nama-nama konstan yang berbeda untuk nilai integer yang sama (-1 jika Anda ingin tahu) digunakan untuk menentukan mode tata letak View dalam induknya.

Jadi kenapa MATCH_PARENT ditambahkan?

Tim Android menemukan bahwa pengembang salah menafsirkan FILL_PARENT berarti bahwa a View akan mengisi sisa ruang yang tersisa di induknya. Padahal, dengan menentukan FILL_PARENT, yang View meminta untuk menjadi sebesar induknya. Dengan demikian, (seperti yang dijelaskan oleh Romain Guy sendiri dalam video ini sekitar pukul 10:56) konstanta diubah namanya MATCH_PARENT untuk memperjelas penggunaannya.

Oke, saya mengerti caranya FILL_PARENT/MATCH_PARENT bekerja. Apa bedanya jika saya menggunakan satu atau yang lain?

FILL_PARENT sudah ditinggalkan. Ditinggalkan tidak membuatnya menjadi Iblis, tetapi akhirnya akan hilang. Aplikasi Anda menggunakan lebih banyak bukti masa depan MATCH_PARENT. Mengapa menggunakan opsi usang ketika opsi saat ini berperilaku persis sama?

Selanjutnya, FILL_PARENT sebenarnya menyesatkan. Saya pribadi telah melihat orang-orang bingung karena itu tidak bekerja seperti yang mereka duga. Bahkan, saya telah melihat satu tag menggunakan keduanya FILL_PARENT dan MATCH_PARENT, karena pengembang berpikir (dimengerti) bahwa mereka adalah dua mode tata letak yang berbeda.

BAGAIMANA ANDA BISA MENDAPATKAN TRIPPED UP TRYING TO FILL_PARENT?

Berikut contoh singkat bagaimana caranya MATCH_PARENT/FILL_PARENT Kebingungan dapat menyebabkan orang-orang berulang kali menerapkan kepala mereka ke meja mereka. Pertama, ambil tata letak sederhana yang berisi beberapa View contoh.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <View
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="#FFFF00" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="@android:color/black"
        android:text="@string/hello_world"
        android:padding="50dp" />
    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF0000" />

</LinearLayout>

6
2018-04-15 04:20



FILL_PARENT tidak lagi digunakan di API level 8 dan MATCH_PARENTgunakan API level yang lebih tinggi


5
2017-09-24 06:56