Android中绝对布局的替代方案?

Android中绝对布局的替代方案?,android,Android,如果不推荐AbsoluteLayout,我可以用什么来代替它 我做过一个应用程序,它使用AbsoluteLayout,但在不同的屏幕分辨率下效果不好。我之所以使用,是因为我可以设置按钮的X和Y位置。我可以使用其他布局设置按钮的位置吗?您可以使用此处描述的相对布局:我只需要使用相对布局,并根据屏幕的其他项目/边缘进行设置。否则,您的布局在不同的设备上会显示不同。使用RelativeLayout并设置左右边距,如 RelativeLayout.LayoutParams params = new Re

如果不推荐AbsoluteLayout,我可以用什么来代替它


我做过一个应用程序,它使用AbsoluteLayout,但在不同的屏幕分辨率下效果不好。我之所以使用,是因为我可以设置按钮的X和Y位置。我可以使用其他布局设置按钮的位置吗?

您可以使用此处描述的相对布局:

我只需要使用相对布局,并根据屏幕的其他项目/边缘进行设置。否则,您的布局在不同的设备上会显示不同。

使用RelativeLayout并设置左右边距,如

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
lp.leftMargin = x;
lp.topMargin =  y;

考虑使用。如果将孩子的重力设置为
TOP | LEFT
,则可以使用
leftMargin
topMargin
作为位置。作为奖励,您还可以通过改变重力获得一些其他有用的定位机制。

如果您想完全控制视图在屏幕上的位置,只是为了扩展ViewGroup并实现自己的AbsoluteLayout,我建议大家。最简单的解决方案是使用一种现有的布局,并使用边距、填充物、重力等,但控制功能不太强大,可能会在diff设备屏幕上造成一些问题。

您可以更好地描述您试图实现的目标。
AbsoluteLayout
被弃用的部分原因是它不能很好地支持多种屏幕尺寸。
AbsoluteLayout
的任何直接推论(例如,
FrameLayout
带边距)都会遇到同样的问题。您应该从寻找解决问题的其他解决方案开始,这些解决方案可以更好地用于各种设备。谢谢。我现在已经添加了一些信息。我刚刚发布了一个可能会引起OP兴趣的库:我喜欢AbsoluteLayout,它把东西放在我说的地方。我举了一个例子,一个按钮的宽度是另一个按钮的两倍,但两个按钮的大小都一样,因为一些聪明的布局认为它知道我在做什么。我在做一个图形,我必须将文本视图放在静态图像上的精确位置。我认为唯一的办法是(实际上,如果不是技术上的话)绝对布局。然后,我可以为不同的桶做一个,但实际上,我希望它会让人感到痛苦。RelativeLayout的最大问题是,如果你嵌套它们,调用OnMeasure的次数在每一步都会加倍。所以,如果你需要一个很深的层次结构,这不是一个好的答案。@WilliamJockusch我自己也很难找到这个答案。解决方案(目前最好)是尽可能(通常是这样)使用LinearLayout,并在LinearLayout内部嵌套RelativeLayout。我有一个带有嵌套RelativeLayouts的相对布局的表视图——在仅将俯视图更改为LinearLayout时,我得到了正常的执行时间。我想你可以通过创建一个内部有相对物的线性布局来破解“绝对布局”,但这听起来很可怕。