【Android】OnGlobalLayoutListener
Viewの幅や高さが取得できるようになるまで待つ場合、OnGlobalLayoutListenerを使用します。
_listener = new ViewTreeObserver.OnGlobalLayoutListener(){ @Override public void onGlobalLayout() { ViewTreeObserver observer = view.getViewTreeObserver(); if(null != observer){ if(Build.VERSION.SDK_INT >= 16) { observer.removeOnGlobalLayoutListener(_listener); } else{ observer.removeGlobalOnLayoutListener(_listener); } } //処理 } }; view.getViewTreeObserver().addOnGlobalLayoutListener(_listener);
特にGoogleMap v2でCameraUpdateFactory.newLatLngBoundsを使用する前に 幅や高さが取得できるようになっていないとクラッシュしてしまうため重宝します。