Java ICS和Jelly Bean在使用Window';s FLAG_全屏显示
我需要在现有的正常Java ICS和Jelly Bean在使用Window';s FLAG_全屏显示,java,android,view,android-4.0-ice-cream-sandwich,android-4.2-jelly-bean,Java,Android,View,Android 4.0 Ice Cream Sandwich,Android 4.2 Jelly Bean,我需要在现有的正常活动上显示一个对话框片段。 我的DialogFragment需要全屏显示,因此我使用以下几行代码来实现该结果: getDialog().getWindow().addFlags(WindowManager.LayoutParams.FLAG_全屏| WindowManager.LayoutParams.FLAG_布局_屏幕); getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG\u LAYOUT\
活动
上显示一个对话框片段
。我的
DialogFragment
需要全屏显示,因此我使用以下几行代码来实现该结果:
getDialog().getWindow().addFlags(WindowManager.LayoutParams.FLAG_全屏| WindowManager.LayoutParams.FLAG_布局_屏幕);
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG\u LAYOUT\u INSET\u DECOR);
在ICS上,一切正常,我的对话框片段
全屏显示,当我关闭它时,我的活动
内容没有调整大小,因此没有布局问题(因为我设置的全屏标志应该只影响对话框片段
所在的窗口)
相反,在Jelly Bean上,当我关闭我的对话框片段
时,我看到我的活动
内容的大小已调整,以覆盖状态栏,因此当它试图返回到原始大小时,出现布局故障。我认为这可能与引入新的系统UI标志(
system\u UI\u FLAG\u LAYOUT\u FULLSCREEN
,等等)有关,但我不知道如何在Jelly Bean上也有相同的ICS行为。。。有什么想法吗?
找到解决方法,您需要呼叫:
view.setFitsSystemWindows(true);
在将全屏标志设置到窗口之前,请以相同的方式:
view.setFitsSystemWindows(false);
在清理它之前
视图
必须是活动
中的视图(而不是对话框片段
!),并且必须可见(请参阅)
尽管如此,在设置对话框片段
的关闭动画时仍存在一些ICS上不存在的小故障。。。但我认为这是另一个问题