我的主要活動的視圖上有一個ViewFlipper。在onCreate我instante視圖添加到ViewFlipper。之後,我將展示的孩子設置爲第一個孩子。當點擊一個按鈕時,我將ViewFlipper的顯示子切換到第二個視圖。在調用viewFlipper.setDisplayedChild(1)
之後,我需要做一些計算並瞬間顯示一些基於顯示子的寬度和高度的對象。Android ViewFlipper措施的未顯示的孩子
這裏的主要問題是,在第一時間(秒= 1)顯示兒童的觀測測量尚未完成。所以我的寬度和高度是0.如果我回去(setDisplayedChild(0)
),並返回到第二個孩子沒關係(寬度和高度是正確的)。
我對視圖的行爲做了一些研究,發現有一種方法[onMeasure
](http://developer.android.com/reference/android/view/View.html#onMeasure(int, int)),它可以被忽略,一切都可以在這裏完成。好吧,它應該如何。其實這是,但問題是,onMeasure
在每個視圖開關上被調用4次。而我的發現是,第一個和第三個呼叫寬度和高度是全屏大小。第二次和第四次調用是合適的寬度和高度。因爲我不得不在這個時候瞬間推出新的對象,所以在onMeasure
中這樣做是不明智的。
有沒有其他的,正確的做法呢? 是否可以強制測量? 我真的需要在屏幕上顯示測量結果嗎?
問候 Zmeda