我想知道什么clipToPadding属性为ViewGroup在Android ?

我浏览了一些文档和网站,但没有一个我能真正解释它是什么,它是什么意思,没有一个我能真正理解的,所以我想在这里问它可能是个好主意。


当前回答

https://www.youtube.com/watch?v=O47H4PxMf9U (Udacity的材料设计课程的一部分)中描述了clipToPadding的一个很好的用法。

使用clipToPadding="false"使滚动视图滚动到谷歌Maps图标的顶部。这是由于两者都在相同的框架布局。

其他回答

定义ViewGroup是否将剪辑其子元素,并将任何EdgeEffect大小调整(但不剪辑)到其填充(如果填充不为零)。默认情况下,此属性被设置为true。

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

相关的方法:

setClipToPadding(布)

https://www.youtube.com/watch?v=O47H4PxMf9U (Udacity的材料设计课程的一部分)中描述了clipToPadding的一个很好的用法。

使用clipToPadding="false"使滚动视图滚动到谷歌Maps图标的顶部。这是由于两者都在相同的框架布局。

我知道评分最高的答案通过文本很清楚地解释了这一点,但正如它所说,

“一图胜千言”

下面是一张价值1500美元的动图:

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

对于滚动的视图,可以使用clipToPadding。比如说你有一个listview你在顶部和底部设置了填充。通常情况下,无论哪个项目在屏幕上可见,填充都是可见的。下图表示一个包含10个项目的列表,但在屏幕上只有4个是可见的,默认设置为clipToPadding:

(填充) 第四项 第五项 6项 项目7 (填充)

现在如果你要设置clipToPadding="false",而不是正常地应用到整个视图,它只应用填充到结束项,这是你在相同的场景中看到的:

第四项 第五项 6项 项目7

现在如果你滚动到列表的顶部或底部,这是你会看到的:

(填充) 第一项 第二项 项目3 第四项

OR

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

一个实际的用法是,如果你有一个浮动动作按钮,你应该使用clipToPadding结合底部填充,以确保底部项目的整体可以被看到,而不会被FAB阻碍。

明白吗?

我推荐你看看这篇文章https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g

或者也许你想让你的RecyclerView滚动到一个透明的导航栏下面-通过使用android:fitsSystemWindows= " true "结合android:clipToPadding= " false ",你的滚动内容将在控件后面,但是,当滚动到底部时,最后一项仍然会被填充到导航栏上面(而不是隐藏在下面!)