getLocationOnScreen方法返回的位置是用于什么目的?

6

据我了解,当我们将int[2] location数组传递到view.getLocationOnScreen(location)中时,我们将获得该视图的左上坐标。但是当我调试此函数时,我发现location返回该视图右上角的坐标。我的屏幕尺寸为480x800,我将视图的右边距设置为40,因此视图的右坐标为440,这等于从view.getLocationOnScreen(location)返回的location [0]。为什么location [0]返回视图的右坐标?


1
看文档,甚至没有说明“位置”应该是哪个角落(或任何一个角落)。它应该在左边会有意义,但似乎并不需要。 - DeeV
2个回答

8

这是该视图左上角坐标的准确返回结果。在调用view.getLocationOnScreen(location)之前,由于我的视图尚未呈现,所以我得到了错误的值。


1

为确认被接受的答案,根据getLocationOnScreen的实现,坐标似乎是视图的左上角,而且y轴是倒置的。

public void getLocationOnScreen(@Size(2) int[] outLocation) {
    getLocationInWindow(outLocation);

    final AttachInfo info = mAttachInfo;
    if (info != null) {
        outLocation[0] += info.mWindowLeft;
        outLocation[1] += info.mWindowTop;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接