4
我有一個自定義的視圖,從Button
派生,我想在運行時定位,相對於另一個視圖。因爲當我的視圖被誇大時(因爲佈局還沒有開始),我不知道其他視圖的位置,所以我利用onSizeChanged
處理程序來設置我的視圖相對於其他視圖的位置。以編程方式更改LayoutParams不起作用。爲什麼?
在onSizeChanged
:
LayoutParams lp = new LayoutParams(this.getMeasuredWidth(), this.getMeasuredHeight());
lp.leftMargin = x;
lp.topMargin = y;
this.setLayoutParams(lp);
forceLayout();
然而,這沒有任何影響。怎麼來的?
觀察:offsetTopAndBottom()和offsetLeftAndRight()完成這項工作。必須是關於這些方法的東西,它的工作方式不同於設置新的LayoutParams(尚未查看源代碼)。 – Matthias 2009-11-16 09:34:01