我有一个源自 的自定义视图Button,我想在运行时相对于另一个视图定位它。因为当我的视图膨胀时我还不知道其他视图的位置(因为布局尚未开始),所以我利用处理程序onSizeChanged来设置我的视图相对于其他视图的位置。
在onSizeChanged:
LayoutParams lp = new LayoutParams(this.getMeasuredWidth(), this.getMeasuredHeight());
lp.leftMargin = x;
lp.topMargin = y;
this.setLayoutParams(lp);
forceLayout();
Run Code Online (Sandbox Code Playgroud)
然而,这没有任何效果。怎么会?
需要考虑的一些事项:
hierarchyviewer查看是否设置了边距,但它们根本没有达到您期望的视觉效果?RelativeLayout?LayoutParams而不是替换它?