แอนดรอยด์ clipToPadding มีอะไรบ้าง


171

ฉันต้องการที่จะรู้ว่าสิ่งที่clipToPaddingคุณลักษณะทำViewGroupใน Android

ฉันเคยผ่าน docs และบางเว็บไซต์แล้ว แต่ไม่มีฉันเจอจริง ๆ แล้วอธิบายสิ่งที่มันทำและสิ่งที่มันหมายถึงไม่มีใครที่ฉันสามารถเข้าใจได้จริงดังนั้นฉันคิดว่ามันเป็นความคิดที่ดีที่จะถามที่นี่

คำตอบ:


421

คุณสามารถใช้ clipToPadding สำหรับมุมมองที่เลื่อน สมมติว่าคุณมี listview เป็นตัวอย่างและคุณมีชุดช่องว่างด้านบนและด้านล่าง ตามปกติการมองเห็นช่องว่างไม่ว่าจะมองเห็นรายการใดบนหน้าจอ แผนภาพด้านล่างแสดงรายการที่มี 10 รายการ แต่มีเพียง 4 รายการที่มองเห็นได้บนหน้าจอพร้อมการตั้งค่า clipToPadding ที่เป็นค่าเริ่มต้น:

  • (การขยายความ)
  • รายการ 4
  • รายการ 5
  • รายการ 6
  • รายการ 7
  • (การขยายความ)

ตอนนี้ถ้าคุณต้องตั้งค่าclipToPadding="false"แทนที่จะใช้เพียงแค่กับมุมมองทั้งหมดโดยปกติจะใช้การเติมเต็มกับรายการสุดท้ายเท่านั้นนี่คือสิ่งที่คุณเห็นในสถานการณ์เดียวกัน:

  • รายการ 4
  • รายการ 5
  • รายการ 6
  • รายการ 7

ตอนนี้ถ้าคุณกำลังจะเลื่อนไปด้านบนหรือด้านล่างของรายการนี้คือสิ่งที่คุณจะเห็น:

  • (การขยายความ)
  • รายการ 1
  • รายการ 2
  • รายการ 3
  • รายการ 4

หรือ

  • รายการ 7
  • รายการ 8
  • รายการ 9
  • รายการ 10
  • (การขยายความ)

การใช้งานจริงสำหรับสิ่งนี้คือถ้าคุณมีปุ่มการกระทำลอยตัวคุณควรใช้ clipToPadding รวมกับการเสริมด้านล่าง

มันสมเหตุสมผลไหม


59
ฉันพร้อมที่จะจ่ายเงินหากเอกสารอย่างเป็นทางการเริ่มแจกคำอธิบายแบบนี้สำหรับหัวข้ออื่น ๆ
Manish Kumar Sharma

ใช้กับ recyclerview หรือกลุ่มการดูใด ๆ เท่านั้นหรือไม่
RamPrasadBismil

ฉันรักความคิดเห็นนี้และเสมอว่าฉันต้องเผชิญหน้ากับคลิปที่จะแพ็ดดิ้งต้องกลับมา! ขอบคุณ :)
Pol

คำอธิบายที่ดีมาก! ยินดีด้วย!
Maycon Cardoso

302

ฉันรู้ว่าคำตอบที่ได้คะแนนสูงสุดอธิบายได้อย่างชัดเจนผ่านข้อความ แต่ตามที่กล่าวไว้

" รูปภาพมีค่าหนึ่งพันคำ "

นี่คือ GIF มูลค่า 1,500 ภาพ:

(ซ้าย: clipToPadding = "true"ขวา: clipToPadding = "false")

ป้อนคำอธิบายรูปภาพที่นี่


6
แต่อย่างใดคำตอบที่เป็นข้อความนั้นง่ายต่อการเข้าใจ;) ขอบคุณสำหรับการเข้าชม!
TWiStErRob

2
รูปภาพพูดได้มากกว่าคำพูด แต่คำต่าง ๆ นั้นสมบูรณ์กว่า ... ที่นี่ไม่แสดงจุดจบของรายการที่ถูกต้องว่าเกิดอะไรขึ้นกับมันหากมันมีช่องว่างด้านล่าง ...
MHSFisher

10

มีการclipToPaddingอธิบายการใช้งานที่ดีในhttps://www.youtube.com/watch?v=O47H4PxMf9U (ส่วนหนึ่งของหลักสูตรการออกแบบวัสดุของ Udacity )

การใช้clipToPadding="false"ทำให้มุมมองเลื่อนดูอยู่เหนือไอคอน Google แผนที่ด้านบน FrameLayoutเพราะนี่คือความเป็นอยู่ทั้งภายในเดียวกัน

google play store ของแผนที่ google แสดงการวางคลิปเสริม


6

ฉันแนะนำให้คุณอ่านบทความนี้https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g

หรือบางทีคุณอาจต้องการให้ RecyclerView ของคุณเลื่อนใต้แถบนำทางโปร่งใส - โดยใช้ android: FitsSystemWindows =” true” ร่วมกับ android: clipToPadding =” false” เนื้อหาการเลื่อนของคุณจะอยู่ด้านหลังตัวควบคุม แต่เมื่อเลื่อนไปที่ด้านล่าง รายการสุดท้ายจะยังคงอยู่ในระดับสูงกว่าแถบนำทาง (แทนที่จะซ่อนอยู่ใต้!)


-2

กำหนดว่าViewGroupจะให้คลิปลูก ๆ ของมันและปรับขนาด (แต่ไม่ใช่คลิป) หรือEdgeEffectไม่หากมีการขยายไม่เป็นศูนย์ คุณสมบัตินี้ถูกตั้งค่าเป็นtrueเริ่มต้น

อาจเป็นค่าบูลีนเช่น "true" หรือ "false"

วิธีการที่เกี่ยวข้อง:

setClipToPadding(boolean)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.