以编程方式更改LayoutParams在Android中无效。为什么?

时间:2009-11-15 16:29:15

标签: android layout

我有一个自定义视图,派生自Button,我想在运行时相对于另一个视图定位。因为当我的视图被夸大时(因为布局尚未开始)我还不知道其他视图的位置,所以我利用onSizeChanged处理程序来设置我的视图相对于另一视图的位置。

onSizeChanged

LayoutParams lp = new LayoutParams(this.getMeasuredWidth(), this.getMeasuredHeight());
lp.leftMargin = x;
lp.topMargin = y;
this.setLayoutParams(lp);

forceLayout();
但是,这没有任何效果。怎么样?

1 个答案:

答案 0 :(得分:4)

需要考虑的一些事项:

  1. 您确定此代码正在执行吗?
  2. 您是否检查了hierarchyviewer中的用户界面以查看是否设置了边距,但它们根本没有您期望的视觉效果?
  3. 您确定仅通过RelativeLayout
  4. 更好地处理这个问题
  5. 您是否尝试修改现有的LayoutParams而不是替换它?