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

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

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

现在它看起来像这样:-

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

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

提前谢谢你。

【问题讨论】:

  • 是否需要点赞?我觉得不会

标签: android layoutparams android-windowmanager


【解决方案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的根布局)。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2014-12-15
    • 2017-11-16
    • 2023-04-03
    • 1970-01-01
    • 2014-03-07
    • 2014-10-21
    • 1970-01-01
    相关资源
    最近更新 更多