获取视图在屏幕上的位置

Get the position of a view on the screen

我正在使用 Xamarin 本机(不是表单)并且我在 RelativeLayout 中有一个 ImageView。 有没有办法获得视图相对于屏幕而不是相对于父级的绝对位置? 我在 Xamarin.Forms 上看到了这个问题的一些解决方案,它们循环遍历父视图并添加其相对于其父视图的坐标,但它似乎在这里不起作用。 我尝试使用 iv.GetX() 但这是为了获得相对于父项的位置。 获取绝对位置的方法是什么?

提前致谢。

您可以使用GetLocationOnScreen方法获取整个屏幕的绝对坐标。

喜欢:

int[] location = new int[2];
iv.GetLocationOnScreen(location);
int x = location[0];
int y = location[1];

:

这个值是从屏幕顶部开始计算的,其中包括通知的高度bar.If这些参数在Activity的OnCreate()方法中打印,它们是所有 0,在加载 UI 控件之前您不会得到它们。

最好用OnWindowFocusChanged方法获取。