Android, что делает атрибут clipToPadding?

Я хотел бы знать, что clipToPadding атрибут ViewGroup для 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.

Имеет ли это смысл?

Я знаю, что самый высокий ответ объясняет это довольно четко через текст, но, как сказано,

« Картина стоит тысяч слов »

Вот то, что стоит GIF 1500:

(Влево: clipToPadding = "true" Вправо: clipToPadding = "false" )

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

Я рекомендую вам ознакомиться с этой статьей https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g

Или, может быть, вы хотите, чтобы ваш RecyclerView прокручивался под прозрачной навигационной панелью – с помощью андроида: fitsSystemWindows = «true» в сочетании с android: clipToPadding = «false», ваш прокручиваемый контент будет за элементами управления, но при прокрутке вниз, последний элемент по-прежнему будет дополнен над навигационной панелью (а не скрыт снизу!).

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

Используя clipToPadding="false" прокрутка просматривает верхний значок Google Maps. Это связано с тем, что оба находятся внутри одного FrameLayout .

google play store google maps, показывающий cliptopadding

  • список вложенных списков в Android
  • Как изменить образ ImageView?
  • Зачем расширять class приложения?
  • Я забыл пароль своего хранилища ключей, и я хочу установить apk в Google Play. Что я делаю?
  • Чтение файла sqlite из папки с данными
  • Как импортировать файл .aar в Android Studio 1.1.0 и использовать его в моем коде
  • получение нулевого идентификатора устройства при регистрации до gcm
  • PopupWindow $ BadTokenException: Невозможно добавить null-token null недействительно
  • Как я могу сделать ячейку в ListView в Android расширяться и сокращаться вертикально, когда ее касаются?
  • Ограничения streamов Android AsyncTask?
  • Android: Окрашивание части строки с помощью TextView.setText ()?
  • Interesting Posts

    Что означает «{x: Static}» в XAML?

    Обновление Windows KB2952664 (Compattelrunner.exe) не может быть удалено из Windows 7

    Добавление элемента подменю ListView в Android

    Что делает Secure Login (CTRL + ALT + DEL) безопасным?

    Копирование полиморфного объекта в C ++

    Необязательно вводить сценарий контента

    Как настроить цвет фона / границы ячейки сгруппированной таблицы?

    Определение того, какая программа захватывает горячую комбинацию клавиш

    Указатель мыши в моей виртуальной машине Ubuntu превратился в небольшую руку с документом, а клики игнорируются. Как выйти из этого режима?

    Поиск и устранение неисправностей нового компьютера: мгновенно отключается

    Объединение рабочих листов в один

    Как получить sms-отправленное подтверждение для каждого контакта / человека в android?

    Ошибка миграции Laravel: ошибка синтаксиса или нарушение доступа: 1071 Указанный ключ был слишком длинным; максимальная длина ключа – 767 байт

    Помещает ли медиа-файлы в архивы экономить место?

    Штыревые буферы Emacs для окон (для cscope)

    Давайте будем гением компьютера.