Android的clipToPadding属性有什么作用?

Ers*_*man 138 android android-layout

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

我一直在浏览文档和一些网站,但我没有遇到任何实际解释它的作用和含义,没有我能真正理解的,所以我认为在这里问它可能是个好主意.

Dom*_*Dom 344

您可以将clipToPadding用于滚动的视图.假设你有一个listview,例如你在顶部和底部设置了填充.通常,无论在屏幕上看到哪些项目,都可以看到填充.下图表示一个包含10个项目的列表,但屏幕上只显示4个项目,默认的clipToPadding设置:

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

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

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

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

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

要么

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

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

那有意义吗?

  • 如果官方文档开始对其他主题发表这种解释,我愿意付钱 (32认同)
  • 我喜欢这个评论,而且我总是面临着填充的剪辑必须回到它!谢谢 :) (2认同)

pul*_*ion 242

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

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

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

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

在此输入图像描述

  • 然而,某种程度上基于文本的答案更容易理解;)谢谢你的可见! (5认同)
  • 图片说的远不止文字,但文字要完整得多......这里没有显示右侧列表的末尾,如果它有底部填充会发生什么...... (3认同)

ser*_*inc 9

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

使用clipToPadding="false"滚动视图滚动顶部Google地图图标.这是因为两者都在同一个内部FrameLayout.

google play google maps,显示cliptopadding


小智 7

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

或者,您可能希望您的 RecyclerView 在透明导航栏下方滚动?—?通过使用 android:fitsSystemWindows=”true” 和 android:clipToPadding=”false”,您的滚动内容将在控件后面,但是,当滚动到底部,最后一个项目仍将填充到导航栏上方(而不是隐藏在下方!)。