我有一个自定义ViewGroup
,其onSizeChanged()
被覆盖,以便我可以确定整个View
层次结构的整体大小。到目前为止,我假设只要传递的参数不为零,那么给定的尺寸就是View
的确定尺寸。有关信息,ViewGroup
几乎填满整个屏幕,顶部只有ActionBar
和通知栏。
我发现,有时,onSizeChanged()
将连续多次调用,Y的值相差50.我认为配置完成后会发生这种情况改变(即设备轮换)。在我的设备上,50px与顶部通知栏的高度相对应。在横向方向上,我使用FLAG_FULLSCREEN
来隐藏顶部通知栏,因此我在此推测的是,当设备旋转并且View
从已保存状态恢复时,它可能会通过{ {1}}层次结构通过多个度量/布局阶段,因为操作系统删除或替换通知栏的时间安排。
我的评估是否正确,有没有办法确保我通过View
获得的价值是最终的价值?
虽然我意识到,在给onSizeChanged()
多次调用的情况下,最终的一组值将是“正确的”'那些,由于我的申请的性质,我必须知道什么时候收到的价值是正确的' onSizeChanged()
的稳态维度。到目前为止,我能想到解决这个问题的最好方法是使用稍微粗略的延迟过程来检查一段时间后的尺寸。