2015年9月27日 星期日

[Android] 解決view.getWidth()為0問題

有時候在OnCreate()時,取到的View.getWidth()通常會是0 ,

查詢網路上有一個解法。


MyView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
   @Override
   public void onGlobalLayout() {
    // aviod when ui change run this code 
    if (!init) {
     this.width=MyView.getWidth();
     init=true;
    }
   }
  });

不過這個方法有一個小缺點,當VIEW有變化(重繪或是物件有移動)也會引發。

所以可以下一個布林值來判斷是否己取過。

沒有留言:

張貼留言