Android apa yang dilakukan atribut ClipToPadding?

171

Saya ingin tahu untuk apa clipToPaddingatribut ViewGroupdi Android?

Saya telah membaca dokumen dan beberapa situs web tetapi tidak ada yang saya temui yang benar-benar menjelaskan apa fungsinya dan apa artinya, baik tidak ada yang benar-benar dapat saya pahami, jadi saya pikir mungkin ada baiknya bertanya di sini.

Ersen Osman
sumber

Jawaban:

421

Anda dapat menggunakan clipToPadding untuk tampilan yang menggulir. Misalnya Anda memiliki tampilan daftar dan Anda memiliki bantalan yang ditetapkan di bagian atas dan bawah. Biasanya lapisan terlihat tidak peduli item mana yang terlihat di layar. Diagram di bawah ini merupakan daftar dengan 10 item tetapi hanya 4 yang terlihat di layar, dengan pengaturan clipToPadding default:

  • (lapisan)
  • item 4
  • item 5
  • item 6
  • item 7
  • (lapisan)

Sekarang jika Anda ingin mengatur clipToPadding="false"alih-alih hanya diterapkan secara normal ke seluruh tampilan, itu hanya menerapkan padding ke item akhir, ini adalah apa yang akan Anda lihat dalam skenario yang sama:

  • item 4
  • item 5
  • item 6
  • item 7

Sekarang jika Anda menggulir ke bagian atas atau bawah daftar, inilah yang akan Anda lihat:

  • (lapisan)
  • barang 1
  • item 2
  • item 3
  • item 4

ATAU

  • item 7
  • item 8
  • item 9
  • item 10
  • (lapisan)

Penggunaan praktis untuk ini adalah jika Anda memiliki Floating Action Button misalnya, Anda harus menggunakan clipToPadding dikombinasikan dengan padding bawah untuk memastikan keseluruhan item bawah dapat dilihat tanpa terhalang oleh FAB.

Apakah itu masuk akal?

Dom
sumber
59
Saya siap membayar jika dokumen resmi mulai memberikan penjelasan semacam ini untuk topik lain
Manish Kumar Sharma
Apakah ini hanya berlaku untuk recyclerview atau viewgroup?
RamPrasadBismil
Saya suka komentar ini dan selalu bahwa saya menghadapi klip untuk padding harus kembali ke sana! Terima kasih :)
Pol
Penjelasan yang sangat bagus! Selamat!
Maycon Cardoso
302

Saya tahu bahwa jawaban teratas menjelaskan hal ini dengan cukup jelas melalui teks tetapi seperti yang dikatakan,

" Sebuah gambar bernilai ribuan kata "

Berikut adalah GIF senilai 1500 yang menggambarkan hal yang sama:

(Kiri: clipToPadding = "true"Kanan: clipToPadding = "false")

masukkan deskripsi gambar di sini

Manish Kumar Sharma
sumber
6
Namun entah bagaimana jawaban berbasis teks lebih mudah dipahami;) Terima kasih atas vis!
TWiStErRob
2
gambar mengatakan lebih dari sekadar kata-kata, tetapi kata-kata jauh lebih lengkap ... di sini tidak diperlihatkan akhir dari daftar yang tepat bahwa apa yang terjadi jika itu memiliki padding bawah ...
MHSFisher
6

Saya sarankan Anda untuk melihat artikel ini https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g

Atau mungkin Anda ingin RecyclerView Anda menggulir di bawah bilah navigasi transparan - dengan menggunakan android: fitsSystemWindows = "true" dalam hubungannya dengan android: clipToPadding = "false", konten gulir Anda akan berada di belakang kontrol tetapi, ketika digulir ke bawah, item terakhir masih akan diisi di atas bilah navigasi (daripada disembunyikan di bawah!).

cpienovi
sumber
-2

Menentukan apakah ViewGroupakan klip anak-anaknya dan mengubah ukuran (tetapi bukan klip) apa pun EdgeEffectuntuk padding-nya, jika padding tidak nol. Properti ini diatur truesecara default.

Mungkin berupa nilai boolean, seperti "benar" atau "salah".

Metode terkait:

setClipToPadding(boolean)

Abhinav Gupta
sumber