编辑添加更多细节:( 最近两个月前问过...仍然没有找到解决方案)
我的活动有点复杂的观点.在技术意义上并不复杂......只有很多事情要发生.此特定应用程序中的所有活动都设置为FullScreen NoTitleBar,并且它们都设置为横向方向.当应用程序被隐藏然后恢复时,我注意到在开发的早期阶段,布局不经常垂直向下滑动,就好像为标题栏和状态栏腾出空间一样.
在开发的后期,该应用程序现在调用各种外部意图.我现在注意到,当从外部处理的触发意图(例如创建"选择器"意图或选择图像)恢复时,更倾向于进行相同的转换.我能够使用完全相同的步骤不一致地重现它...有时它有时会发生.似乎在测量和布局的各个阶段之间存在竞争条件.我假设系统正在为我做的其中一个步骤是检查全屏和notitlebar,并进行必要的转换.在某些情况下可能会发生这种情况.
我把一堆日志记录,并调用invalidate(),requestLayout()等尝试捕获竞争条件,但问题似乎是我的布局外部.我的根布局的top()和bottom()值分别始终为0和屏幕的高度,即使我在问题发生时记录这个值也是如此.
是否有其他方法的Window,WindowManager或任何其他系统视图相关的对象,我可以强制完全重新测量,重绘,重新检查当前的主题/样式标志?