我一直试图通过对话框中的按钮获取位置,以便我可以使用它在活动中的按钮下方放置一个按钮。
我尝试了一些东西,但它们似乎都没有用
int loc1[] = new int[2];
button.getLocationInWindow(loc1);
int loc2[] = new int[2];
button.getLocationOnScreen(loc2);
我也试过
button.getX();
button.getY();
按钮从未放在对话框中的按钮下方。
(我应该注意到我只提到了获得定位的方法)
任何人都可以帮助我吗?
谢谢!
答案 0 :(得分:0)
您需要在按钮放置后等待回调。您使用的代码未返回正确的值,因为在放置Button之前返回了该值。因此,在高度/宽度为layout_content的布局中添加Button,并使用以下代码:
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];
}
});
答案 1 :(得分:0)
制作布局参数,它们取决于父级,因此您应该使用LinearLayout.LayoutParams
或RelativeLayout.LayoutParams
(还有其他情况)。
并将layout_below(button1)
添加到LayoutParams对象中。并将LayoutParams设置为要在第一个按钮1下方显示的新按钮。