android 退出全屏模式

Posted

技术标签:

【中文标题】android 退出全屏模式【英文标题】:android Exit from full screen mode 【发布时间】:2012-03-29 21:04:12 【问题描述】:

我在 android 中工作。我需要在全屏模式下显示我的活动,我使用以下代码做到了这一点。

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

现在它看起来像这样:-

现在我想退出这个完整模式,所以我的活动应该像以前一样显示。像这样:-

我有一个用于在完整模式或正常模式之间切换的按钮,我会一次又一次地切换模式。请建议我该怎么做。表示如何从全屏获取正常屏幕。

提前谢谢你。

【问题讨论】:

是否需要点赞?我觉得不会 【参考方案1】:

根据以下代码,我可以根据您的需要隐藏TitleBar

Button full;
static int vari = 0;

@Override
public void onCreate(Bundle savedInstanceState) 

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    full = (Button)findViewById(R.id.fullview);
    full.setOnClickListener(new View.OnClickListener() 

        @Override
        public void onClick(View v) 
            // TODO Auto-generated method stub
            if(vari == 0)
            
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
                vari = 1;
            else 
            
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);                 
                vari = 0;
            

        
    );

试试这个代码。对你有很大帮助。

【讨论】:

在 8.0 上测试工作正常 window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) 足以存在全屏模式【参考方案2】:

禁用全屏:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
ActivitiesCurrentContentView.requestLayout();

要重新启用全屏:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
ActivitiesCurrentContentView.requestLayout();

我认为您的情况的关键是重新请求布局。

【讨论】:

这里的ActivitiesCurrentContentView是什么?没有那个名字的类! @bbedward 这只隐藏状态栏【参考方案3】:

当 Fragment 附加到 Activity 时,从 ICS 会重置 全屏模式。最好的办法是添加代码

getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getActivity().findViewById(R.id.root).setSystemUiVisibility(View.STATUS_BAR_HIDDEN);

在fragment的回调onActivityCreated中(layout id root是Activity的根布局)。

【讨论】:

以上是关于android 退出全屏模式的主要内容,如果未能解决你的问题,请参考以下文章

使 Android 应用程序全屏和横向运行

Android WebView播放html5视频,退出全屏后为啥就是黑屏了

如何在android 10中检测全屏手势模式

将videoview切换到全屏模式android

android 6中的android webview youtube视频中的全屏模式问题

android开发做全屏界面时的问题