获取视图在屏幕上的位置
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
方法获取。
我正在使用 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
方法获取。