如何在ConstraintLayout中设置视图的绝对位置

时间:2019-12-26 21:17:30

标签: android xml kotlin view android-constraintlayout

当我使用getLocationOnScreengetLocationInWindow时,我将获得视图的绝对坐标。对我来说,令人惊讶的是,视图的y坐标考虑了手机的状态栏,这意味着如果视图位于屏幕顶部,则其y不会设置为0。

profilePic1.getLocationOnScreen(imagePosition1.coor)

另一方面,使用view.xview.y设置视图的位置不是绝对的,并且相对于布局而言,这意味着:

profilePic1.y = imagePosition1.coor[1]

将图像放置在一个完全不同的位置,因为它将把状态栏的高度增加到新位置。

我的问题是:当视图位于ConstraintLayout内时,是否可以绝对确定视图的坐标?我确实找到了有关涉及相对布局的讨论。 另一种选择:是否可以获取布局的相对坐标,而不是绝对坐标(如getLocationOnScreen一样)?

我的问题是我在布局中获得了视图的位置,无法使用此信息来重新定位视图

1 个答案:

答案 0 :(得分:1)

哦,这很糟糕,答案很简单,可以只使用:

view.top
view.left

获取布局内的相对位置。我不想删除这个问题,也许其他人可以从显示绝对屏幕位置和布局内相对位置之间的差异中受益