Android clipToPadding属性有什么作用?


170

我想知道该clipToPadding属性的作用ViewGroup在Android中的作用是什么?

我已经浏览过文档和一些网站,但没有人真正解释过它的作用和含义,完全没有我真正能理解的东西,因此我认为在这里提出问题可能是一个好主意。

Answers:


419

您可以将clipToPadding用于滚动视图。假设您有一个列表视图,并且在顶部和底部设置了填充。通常,无论屏幕上可见哪些项目,填充都是可见的。下图显示了一个列表,其中包含10个项目,但屏幕上仅显示4个项目,并且具有默认的clipToPadding设置:

  • (填充)
  • 项目4
  • 项目5
  • 项目6
  • 项目7
  • (填充)

现在,如果要设置clipToPadding="false"而不是仅将其正常应用到整个视图,它将仅将填充应用于最终项目,这是在相同场景中看到的结果:

  • 项目4
  • 项目5
  • 项目6
  • 项目7

现在,如果您要滚动到列表的顶部或底部,将会看到以下内容:

  • (填充)
  • 项目1
  • 项目2
  • 项目3
  • 项目4

要么

  • 项目7
  • 项目8
  • 项目9
  • 项目10
  • (填充)

实际的用法是,例如,如果有一个“浮动动作按钮”,则应将clipToPadding与底部填充结合使用,以确保可以看到整个底部项目而不会受到FAB的阻碍。

那有意义吗?


58
我愿意支付,如果官方的文档开始给了这样的解释对其他主题
马尼什·库马尔·夏尔马

它仅适用于recyclerview或任何视图组吗?
RamPrasadBismil

我喜欢这个评论,而且我总是不得不面对填充的问题!谢谢:)
波尔

很好的解释!恭喜!
Maycon Cardoso

300

我知道评分最高的答案可以通过文字清楚地说明这一点,但正如它所说的那样,

一幅图片千言万语

这是一张价值1500的GIF,内容如下:

(左:clipToPadding = "true"右:clipToPadding = "false"

在此处输入图片说明


6
然而,基于文本的答案更容易理解;)虽然如此,但还是感谢您!
TWiStErRob

2
图片说的不只单词,但单词更完整...这里没有显示右边列表的末尾,如果它有底部填充会发生什么...
MHSFisher 18/12/18



-2

定义如果填充不为零,是否ViewGroup将裁剪其子元素并调整EdgeEffect其填充的大小(但不裁剪)。此属性设置为true默认。

可以是布尔值,例如“ true”或“ false”。

相关方法:

setClipToPadding(boolean)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.