我正在开发具有列表视图和详细视图的应用程序,我从列表视图动画到详细视图。在执行此操作时,我想在某个阶段隐藏状态栏(最好还是在后台显示列表视图)。问题是使用
隐藏状态栏 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及更高版本上,制造商之间的工作也不一致。
无论如何,我是否隐藏状态栏而不会导致重新布局或暂停布局一段时间?
答案 0 :(得分:2)
FLAG_LAYOUT_IN_SCREEN和FLAG_LAYOUT_INSET_DECOR怎么样?然后,您的窗口将始终向上延伸到状态栏下方,并且您需要观察插入内容以确保您没有使用内容对其进行内嵌,但这样您就不会在状态栏隐藏时再次布局或示出。