在Android的屏幕中设置标志\u布局\u后禁用全屏模式

在Android的屏幕中设置标志\u布局\u后禁用全屏模式,android,android-layout,android-window,Android,Android Layout,Android Window,我必须继承一个自定义的主活动类,它是第三方库,我不能对该类进行任何更改。这个类将FLAG_LAYOUT_IN_SCREEN添加到窗口中,并使应用程序全屏显示。但是,我想阻止这种行为。因此,问题是如何清除/禁用全屏模式,以及如何显示导航栏/状态栏 这是自定义的主活动类 public class CustomActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState)

我必须继承一个自定义的主活动类,它是第三方库,我不能对该类进行任何更改。这个类将FLAG_LAYOUT_IN_SCREEN添加到窗口中,并使应用程序全屏显示。但是,我想阻止这种行为。因此,问题是如何清除/禁用全屏模式,以及如何显示导航栏/状态栏

这是自定义的主活动类

public class CustomActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
       setContentView(new FrameLayout(this));
       // rest...
    }
}
这是我的活动课:

public class MyActivity extends CustomActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       // tried these attempts below, but none of them prevented 
       // the fullscreen mode which hides navigation bar and status bar.
       this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
       this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
       this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    }
}
注意:您还可以在示例应用程序上轻松测试它。您会注意到,一旦您在屏幕中添加了
标志\u布局,\u
,对于不同的尝试,全屏模式也会保持不变

public class MainActivity extends Activity {
    private FrameLayout mainLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.getWindow().addFlags(FLAG_LAYOUT_IN_SCREEN);
        setContentView(new FrameLayout(this));
        this.getWindow().clearFlags(FLAG_LAYOUT_IN_SCREEN);
        this.getWindow().addFlags(FLAG_KEEP_SCREEN_ON);
    }

请将以下内容应用于应用程序,使其不显示为全屏(显示状态栏)


这不是在简历中起作用吗。我也试过了。仍然保持全屏模式。请尝试以下
getWindow().getDecorView().SetSystemMivibility(视图、系统、UI、标志、布局、稳定)
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_全屏)`是的。它就像一个符咒。谢谢。如果你贴出来,我可以接受你的回答。
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);       
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);