如何以编程方式更改View的尺寸?
问题描述:
我只想要一个具有特定尺寸的空视图。 我声明引用变量在这里:如何以编程方式更改View的尺寸?
public static View sv;
我实例在我活动的onCreate方法的观点:
sv = new View(this);
,然后尝试将尺寸合适的下方:
sv.setLayoutParams(new FrameLayout.LayoutParams(100, 100));
但是当我调用sv.getWidth()和sv.getHeight()时,它们仍然返回0
答
只有在OnCreate()和OnResume()之后,高度和宽度才会有值。尝试获取此方法后的高度和宽度。
修订
您可以使用布局听众对于这一点,这取决于你的目标。例如,在onCreate()中:
final View view = findViewById(android.R.id.view);
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
//Now you can change the dimensions
}
});
视图可能立即有或没有宽度和高度。您需要确保视图已经创建并且具有宽度或高度,然后才能返回非零值。 – 2015-02-24 20:42:45