【问题标题】:Set position of view not based on its parent设置视图的位置不基于其父级
【发布时间】:2014-01-21 22:16:12
【问题描述】:

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

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

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

谁能帮我解决这个问题?

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

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

    即使您使用了正确的方法,您也没有得到正确的坐标。 this 可能会解决您的查询。

    【讨论】:

    • 获得职位不是问题。 getLocationOnScreen() 似乎返回了正确的数字。我需要一种方法来使用这些数字来计算图像视图在不同布局中的位置,当两个布局同时显示时
    • @JasonCrosby 我也有同样的问题
    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多