什么是android:layout_gravity =“clip_vertical”

前端之家收集整理的这篇文章主要介绍了什么是android:layout_gravity =“clip_vertical”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
属性 android:layout_gravity =“clip_vertical | horizo​​ntal”执行sdk文档中提到的以下内容

Additional option that can be set to
have the top and/or bottom edges of
the child clipped to its container’s
bounds. The clip will be based on the
vertical gravity: a top gravity will
clip the bottom edge,a bottom gravity
will clip the top edge,and neither
will clip both edges.

但我的应用程序中看不到任何内容

那么这个属性的目的是什么呢?

谢谢

解决方法

简短版本:

在渲染任何内容(例如BitmapDrawable中的图像)之前,clip_horizo​​ntal和clip_vertical应用于视图本身的度量.

长版本:

我在clip_horizo​​ntal和clip_vertical中遇到了类似的混乱. (在我的情况下,它是与Android的重力相关的BitmapDrawable,但它是足够相似的适用.)

从文档中我觉得像位图之类的东西就像是android:gravity =“top | left | clip_vertical”,会导致图像的左上角位于视图的左上角,如果位图比视图高,它将被“剪切”在视图的底部边缘.换句话说,只显示视图足够高以显示的位图;不要拉伸位图,而是只显示任何适合的位置,让其余的延伸到底边.

然而,恰恰相反,当我设置clip_vertical时,一个大的位图被垂直压缩以适应视图的高度.

在平台/ frameworks / core / java / android / view / Gravity.java中检查了applyDisplay()方法后,我意识到我的错误

它不是要被剪切的位图图像,而是视图 – 图像最终呈现的容器的实际大小.

在我的情况下设置clip_vertical并不意味着“将图像剪切在底部边缘”,这意味着“剪切BitmapDrawable的视图本身,因此它的高度与其父容器的高度相匹配”,然后导致图像被“压缩” “因为它填满了较短的高度.

所以,重要的事情要记住与android:gravity和android:layout_gravity是clip_horizo​​ntal和clip_vertical应用于视图本身的测量,在任何内容(如我的BitmapDrawable)呈现之前.

猜你在找的Android相关文章