我正在寻找任何线索来理解这种方法。
官方 Android 的 SDK 文档中没有关于它的信息。
它返回什么样的矩形?
它是否像 MotionEvent 中那样充满了原始坐标?
如果这个视图不可见怎么办?它返回null吗?还是一些内部带有某种 VIEW_INVISIBLE 值的矩形?
有使用这种方法经验的人可以帮帮我吗?
我正在寻找任何线索来理解这种方法。
官方 Android 的 SDK 文档中没有关于它的信息。
它返回什么样的矩形?
它是否像 MotionEvent 中那样充满了原始坐标?
如果这个视图不可见怎么办?它返回null吗?还是一些内部带有某种 VIEW_INVISIBLE 值的矩形?
有使用这种方法经验的人可以帮帮我吗?
从getGlobalVisibleRect的JavaDoc:
/**
* If some part of this view is not clipped by any of its parents, then
* return that area in r in global (root) coordinates. To convert r to local
* coordinates (without taking possible View rotations into account), offset
* it by -globalOffset (e.g. r.offset(-globalOffset.x, -globalOffset.y)).
* If the view is completely clipped or translated out, return false.
*
* @param r If true is returned, r holds the global coordinates of the
* visible portion of this view.
* @param globalOffset If true is returned, globalOffset holds the dx,dy
* between this view and its root. globalOffet may be null.
* @return true if r is non-empty (i.e. part of the view is visible at the
* root level.
*/
getLocalVisibleRect 调用 getGlobalVisibleRect ,然后按照建议将其设为本地:
r.offset(-offset.x, -offset.y); // make r local`
所以:
visibility="gone"