在Android的屏幕中设置标志\u布局\u后禁用全屏模式
我必须继承一个自定义的主活动类,它是第三方库,我不能对该类进行任何更改。这个类将FLAG_LAYOUT_IN_SCREEN添加到窗口中,并使应用程序全屏显示。但是,我想阻止这种行为。因此,问题是如何清除/禁用全屏模式,以及如何显示导航栏/状态栏 这是自定义的主活动类在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)
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);