在隐藏状态栏上防止重新布局(伪造SYSTEM_UI_FLAG_LAYOUT_STABLE)

时间:2013-10-10 23:41:22

标签: android performance android-layout

我正在开发具有列表视图和详细视图的应用程序,我从列表视图动画到详细视图。在执行此操作时,我想在某个阶段隐藏状态栏(最好还是在后台显示列表视图)。问题是使用

隐藏状态栏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

导致列表视图(或详细视图)重新布局。这使得事情看起来不稳定,并且还可能导致大量处理使动画丢帧。有一个解决方案:

列表视图中的

setSystemUiFlags(SYSTEM_UI_FLAG_LAYOUT_STABLE)

详情视图

setSystemUiFlags(SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)

但这些在API 16之下根本不起作用(我的目标是API 14及更高版本),即使在API 16及更高版本上,制造商之间的工作也不一致。

无论如何,我是否隐藏状态栏而不会导致重新布局或暂停布局一段时间?

1 个答案:

答案 0 :(得分:2)

FLAG_LAYOUT_IN_SCREENFLAG_LAYOUT_INSET_DECOR怎么样?然后,您的窗口将始终向上延伸到状态栏下方,并且您需要观察插入内容以确保您没有使用内容对其进行内嵌,但这样您就不会在状态栏隐藏时再次布局或示出。