Я хотел бы знать, что clipToPaddingделает атрибут ViewGroupв Android?
Я просматривал документы и некоторые веб-сайты, но ни один из них, с которыми я сталкивался, на самом деле не объясняет, что это делает и что это значит, ну, в общем, я не мог понять, поэтому я подумал, что было бы неплохо задать это здесь.
Вы можете использовать clipToPadding для прокручиваемых представлений. Скажем, у вас есть, например, просмотр списка, и вы установили отступы сверху и снизу. Обычно отступы видны независимо от того, какие элементы видны на экране. На диаграмме ниже представлен список из 10 элементов, но на экране видны только 4 элемента со стандартными настройками clipToPadding:
(Дополнение)
пункт 4
пункт 5
пункт 6
пункт 7
(Дополнение)
Теперь, если вам нужно установить clipToPadding="false"вместо обычного применения ко всему виду, он применяет заполнение только к конечным элементам, это то, что вы увидите в том же сценарии:
пункт 4
пункт 5
пункт 6
пункт 7
Теперь, если бы вы прокрутили список вверх или вниз по списку, вы увидите следующее:
(Дополнение)
пункт 1
пункт 2
пункт 3
пункт 4
ИЛИ
пункт 7
пункт 8
пункт 9
пункт 10
(Дополнение)
Практическое использование для этого, например, если у вас есть кнопка с плавающим действием, вы должны использовать clipToPadding в сочетании с нижним заполнением, чтобы гарантировать, что FAB может видеть весь нижний элемент без помех.
Тем не менее, как-то текстовые ответы легче понять;) Спасибо за внимание, хотя!
TWiStErRob
2
картинка говорит гораздо больше, чем слова, но слова были гораздо более полными ... здесь не показан конец правильного списка, что случилось с ним, если у него есть нижнее заполнение ...
Использование clipToPadding="false"делает вид прокрутки прокручивать верхний значок Google Maps. Это связано с тем, что оба находятся внутри одного и того же FrameLayout.
Или, может быть, вы хотите, чтобы ваш RecyclerView прокручивался под прозрачной панелью навигации - используя android: fitsSystemWindows = «true» в сочетании с android: clipToPadding = «false», содержимое прокрутки будет находиться за элементами управления, но при прокрутке вниз последний элемент будет по-прежнему дополнен панелью навигации (а не скрыт под ней!).
Определяет, ViewGroupбудет ли объект обрезать свои дочерние элементы и изменять их размер (но не обрезать) EdgeEffectдо отступов, если отступ не равен нулю. Это свойство установлено trueпо умолчанию.
Может быть логическим значением, таким как «true» или «false».
Я знаю, что ответ с наивысшим рейтингом объясняет это довольно четко через текст, но, как говорится,
« Картинка стоит тысячи слов »
Вот GIF стоимостью 1500 с изображением того же самого:
(Слева:
clipToPadding = "true"
Справа:clipToPadding = "false"
)источник
Хорошее использование
clipToPadding
описано в https://www.youtube.com/watch?v=O47H4PxMf9U (часть курса Udacity по дизайну материалов )Использование
clipToPadding="false"
делает вид прокрутки прокручивать верхний значок Google Maps. Это связано с тем, что оба находятся внутри одного и того жеFrameLayout
.источник
Я рекомендую вам взглянуть на эту статью https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g
источник
Определяет,
ViewGroup
будет ли объект обрезать свои дочерние элементы и изменять их размер (но не обрезать)EdgeEffect
до отступов, если отступ не равен нулю. Это свойство установленоtrue
по умолчанию.Может быть логическим значением, таким как «true» или «false».
Родственные методы:
setClipToPadding(boolean)
источник