何时使用 offsetdescendantectomycoords?

Shu*_*arg 5 android android-view

我正在遵循在线教程,他使用了offsetdescendantectomycoords。我进行了很多研究,但找不到任何令人满意的解释。我参考了文档,它说“将后代坐标空间中的矩形偏移到我们的坐标空间中”我不明白......我们的坐标空间是什么?

任何帮助表示赞赏。

beh*_*ati 5

假设我们有这样的布局层次结构:

祖父母/父母/孩子

每个层级都有 10dp 的布局填充。如果您需要计算子上边缘和祖父母上边缘之间的间距。那么你可以这样做:

 private int getTopWithinGrandParent(View child) {
    child.getDrawingRect(mTempRect);
    mGrandParent.offsetDescendantRectToMyCoords(child, mTempRect);
    return mTempRect.top;
} 
Run Code Online (Sandbox Code Playgroud)

当您有超过 2 个嵌套视图(3 个或更多)并且您想要计算后代视图相对于祖父或其他更高级别祖先的偏移量(但对于直接父级,不需要调用此方法)时,使用 offsetDescendantRectToMyCoords 方法。