设置视图的位置不基于其父级

时间:2014-01-21 22:16:12

标签: android android-layout

我有一种情况,到目前为止我还没有找到答案。我正在开发一个在两个不同片段中使用PopupWindow的应用。这两个片段中的每一个都使用两个弹出窗口。所以总共有4个弹出窗口。有一个视图用于所有popupwindows。该视图有一个向上箭头,需要指向单击按钮以打开弹出窗口,无论按钮位于何处。我尝试了getLocationOnScreen()getX()getLeft()setX()setY()的一些不同组合。据我了解,getLocationInWindow()是唯一一个根据设备屏幕大小处理视图位置的人。其他4个都根据视图的父级获取和设置值。由于单击以打开弹出窗口的按钮和用于显示弹出窗口中内容的视图具有不同的父项,因此getX(), getLeft(), setX()and setY ()`导致将箭头的位置设置在每个按钮的不同位置。

我需要但尚未找到的是一种根据我从getLocationOnScreen()得到的x和y坐标在弹出窗口中设置位置箭头图像的方法。但是没有setLocationOnScreen()

所以我需要一种方法来计算箭头的位置,以便在点击的按钮下设置,无论按钮在哪里或按钮的父母是什么。我确定有办法计算它,我只是不确定如何。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

getLocationOnScreen()& getLocationInWindow()几乎相同,只是getLocationOnScreen()返回相对于整个屏幕的坐标,而getLocationInWindow()将返回相对于活动的坐标。 See here

即使您使用的是正确的方法,也无法获得正确的坐标。可能this应解决您的查询。