安卓中clipToPadding属性是什么作用?

249

我想了解在Android中,clipToPadding属性对ViewGroup有什么作用?

我已经查看了文档和一些网站,但是没有一个能够清楚地解释它的作用和含义,至少我无法理解,所以我认为在这里提问可能是个好主意。

5个回答

597
你可以在滚动视图中使用clipToPadding属性。比如说你有个列表视图,在顶部和底部设置了padding。默认情况下,无论屏幕上显示哪些项目,这些padding都是可见的。下面的图表示一个有10个项目的列表,但屏幕上只有4个项目可见,默认的clipToPadding设置如下:
  • (padding)
  • item 4
  • item 5
  • item 6
  • item 7
  • (padding)
现在,如果你将 clipToPadding="false" 设置为false,而不是将其正常应用于整个视图,它只会将padding应用于最后的项目,这就是在相同场景下你所看到的:
  • item 4
  • item 5
  • item 6
  • item 7
现在,如果你向上或向下滚动列表,你会看到以下内容:
  • (padding)
  • item 1
  • item 2
  • item 3
  • item 4

OR

  • item 7
  • item 8
  • item 9
  • item 10
  • (padding)
实际应用案例是,如果你有一个浮动操作按钮,你应该使用clipToPadding属性和底部padding,以确保整个底部项目可以在不被FAB遮挡的情况下看到。
明白吗?

140
如果官方文件开始为其他主题提供这种解释,我已经准备好付款。 - Manish Kumar Sharma
它只适用于RecyclerView还是任何ViewGroup? - RamPrasadBismil
1
我喜欢这个评论,每当我遇到填充夹子的时候,我都得回来看它!谢谢 :) - Pol
在这个答案中,如果对于第二个示例,显示出项目3和项目8部分可见是因为填充不占用空间,那么会更清晰吗? - Ted Henry

457

我知道排名靠前的答案已经通过文字非常清楚地解释了这一点,但正如所说的:

"一张图片胜过千言万语"

这里有一个价值1500的GIF图展示同样的内容:

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

输入图像描述


13
但不知怎么回事,基于文本的回答更容易理解。谢谢你的信息。 - TWiStErRob
5
图片胜过语言,但语言更为完整......这里没有显示右侧列表的结尾,如果它有底部填充会发生什么…… - MHSaffari
@MHSFisher,答案旨在演示顶部填充。 - NOT_A_PROGRAMMER

12

8

-4

定义ViewGroup是否裁剪其子项并调整(但不裁剪)任何EdgeEffect到其填充区域,如果填充区域不为零。此属性默认设置为true

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

相关方法:

setClipToPadding(boolean)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接