我的主要活动的视图上有一个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