1.代码中获取控件的高度
ll_bottom是一个LinearLayout控件
ViewTreeObserver vto = ll_bottom.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
//当一个视图树将要绘制时调用这个回调函数。
public boolean onPreDraw() {
int height = ll_bottom.getMeasuredHeight();//获取控件高度
int width = ll_bottom.getMeasuredWidth();//获取控件的高度
return true;
}
});
2.代码中设置控件的Margin
//lp代表某个控件,该控件可以获取到其父控件类型的LayoutParams
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) sv.getLayoutParams();
lp.setMargins(0,0,0,height);//left, top, right, bottom
sv.setLayoutParams(lp);