Android Що робить атрибут clipToPadding?


171

Хотілося б дізнатися, для чого clipToPaddingатрибут ViewGroupв Android?

Я переглянув документи та деякі веб-сайти, але жоден, з яким я не зіткнувся, пояснює, що це робить і що це означає, ну жодне, що я насправді міг би зрозуміти, тому я подумав, що це може бути гарною ідеєю запитати його тут.

Відповіді:


421

Ви можете використовувати clipToPadding для подань, які прокручуються. Скажімо, у вас є, наприклад, перегляд списку, і ви встановили набивання зверху і внизу. Зазвичай прокладка видно незалежно від того, які елементи відображаються на екрані. На схемі нижче представлений список з 10 предметами, але на екрані видно лише 4 з налаштуваннями clipToPadding:

  • (підкладка)
  • п. 4
  • п. 5
  • п. 6
  • п. 7
  • (підкладка)

Тепер, якщо ви повинні встановити clipToPadding="false"замість того, щоб просто застосовуватись до всього перегляду, він застосовує лише підкладки до кінцевих елементів, це саме те, що ви побачите в тому ж сценарії:

  • п. 4
  • п. 5
  • п. 6
  • п. 7

Тепер, якщо ви прокручували до верхньої чи нижньої частини списку, ось що ви побачили:

  • (підкладка)
  • пункт 1
  • пункт 2
  • п. 3
  • п. 4

АБО

  • п. 7
  • п. 8
  • п. 9
  • пункт 10
  • (підкладка)

Практичне використання для цього - якщо у вас є, наприклад, кнопка "Плаваюча дія", ви повинні використовувати clipToPadding у поєднанні з нижньою накладкою, щоб забезпечити видимість усього нижнього елемента, не перешкоджаючи FAB.

Чи має це сенс?


59
Я готовий платити, якщо офіційні документи почнуть давати подібні пояснення для інших тем
Manish Kumar Sharma

Це стосується лише рециркулятора або будь-якої групи перегляду?
RamPrasadBismil

Мені подобається цей коментар, і завжди, коли я стикаюся із кліпом, щоб набивка повинна повернутися до нього! Дякую :)
Пол

Дуже приємне пояснення! Вітаю!
Майкон Кардосо

302

Я знаю, що найкраще відповідь пояснює це досить чітко через текст, але, як було сказано,

" Картина варта тисячі слів "

Ось GIF у розмірі 1500 із зображенням того ж:

(Зліва: clipToPadding = "true"Справа: clipToPadding = "false")

введіть тут опис зображення


6
І все-таки текстові відповіді легше зрозуміти;) Дякую за віс!
TWiStErRob

2
картинка говорить набагато більше, ніж слова, але слова були набагато повнішими ... тут не показано в кінці правильного списку, що сталося за неї, якщо в неї є нижня прокладка ...
MHSFisher

10

Приємне використання clipToPaddingописується в https://www.youtube.com/watch?v=O47H4PxMf9U (частина курсу дизайну матеріалів Udacity )

Використання clipToPadding="false"робить перегляд прокрутки прокручувати верхню піктограму Карт Google. Це пов’язано з тим, що обидва знаходяться всередині одного FrameLayout.

Google Play магазин google map, показуючи кліппадпад


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)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.