我的Android应用程序必须在某些时候切换到 landscape 模式,不使用发声器栏来显示占据完整显示高度和宽度的屏幕。我通过调用
来做到这一点setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
并在传入“setFlags
”的Window对象上调用“WindowManager.LayoutParams.FLAG_FULLSCREEN
”
当我返回人像模式并使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
并设置标记“WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN
”和“WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
”。
我的布局对象的原点(0,0)现在是在下的启动器。因此,我的应用程序视图的前15个像素被发声器/单元信号/电池条覆盖。
有没有人见过这个问题?
是否有一个我错过的标志会恢复纵向/非全屏,而不会将我的应用程序推到顶部栏中?
答案 0 :(得分:0)
只需找到上一篇文章Hiding Title in a Fullscreen mode?
的解决方案private void updateFullscreenStatus(bUseFullscreen)
{
if(bUseFullscreen)
{
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
}
else
{
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
m_contentView.requestLayout();
}