2015-02-24 37 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 
      } 
     });