2015-02-24 38 views
0

我只想要一个具有特定尺寸的空视图。 我声明引用变量在这里:如何以编程方式更改View的尺寸?

public static View sv; 

我实例在我活动的onCreate方法的观点:

sv = new View(this); 

,然后尝试将尺寸合适的下方:

sv.setLayoutParams(new FrameLayout.LayoutParams(100, 100)); 

但是当我调用sv.getWidth()和sv.getHeight()时,它们仍然返回0

+0

视图可能立即有或没有宽度和高度。您需要确保视图已经创建并且具有宽度或高度,然后才能返回非零值。 – 2015-02-24 20:42:45

回答

1

只有在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 
      } 
     });