Android clipToPadding属性是做什么的?

我想知道什么clipToPadding属性为Android中的ViewGroup吗?

我已经通过文档和一些网站,但没有遇到实际解释它做什么,它是什么意思,以及我没有真正理解,所以我认为这可能是一个好主意,问这里

谢谢

您可以使用clipToPadding来滚动视图。 假设你有一个listview例如,你有填充设置在顶部和底部。 通常填充是可见的,不pipe哪个项目在屏幕上可见。 下图显示了一个包含10个项目的列表,但屏幕上仅显示4个项目,其中默认使用了clipToPadding设置:

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

现在,如果您要设置clipToPadding="false"而不是仅仅将正常应用于整个视图,则只会将填充应用于最终项目,这是您在同一场景中看到的内容:

  • 第4项
  • 第5项
  • 第6项
  • 第7项

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

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

要么

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

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

那有意义吗?

我知道评分最高的答案通过文字清楚地解释了这一点,但正如其所言,

一张图片胜过千言万语

这是一个价值1500的GIF描绘相同的:

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

在这里输入图像说明

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

或者,您可能希望您的RecyclerView在透明导航栏下滚动 – 通过将android:fitsSystemWindows =“true”与android:clipToPadding =“false”结合使用, 滚动内容将位于控件的后面,但当滚动到底部时,最后一项仍然会被填充到导航栏的上方 (而不是隐藏在下面!)。