我一直在尝试从对话框中的按钮获取位置,以便我可以使用它在活动中将按钮放置在该按钮下方。

我已经尝试了一些方法,但是似乎都没有用

int loc1[] = new int[2];
button.getLocationInWindow(loc1);

int loc2[] = new int[2];
button.getLocationOnScreen(loc2);


我也尝试过

button.getX();
button.getY();


该按钮从未放置在对话框中的按钮下方。

(我应该注意,我只提到了获得职位的方法)

有谁能够帮助我 ?

谢谢 !

最佳答案

按钮放置后,您需要等待回调。您使用的代码未返回正确的值,因为该值是在放置Button之前返回的。因此,在具有高度/宽度的布局中将Button添加为wrap_content并使用以下代码:

layout.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
    getViewTreeObserver().removeGlobalOnLayoutListener(this);

    int[] locations = new int[2];
     layout.getLocationOnScreen(locations);
    int x = locations[0];
    int y = locations[1];
}
});

关于java - 从对话框到 Activity 的按钮位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29307283/

10-12 01:30
查看更多