我想在单击按钮时隐藏所有布局的状态栏。我在设置布局中定义了该按钮。但是单击“隐藏”按钮后,当前布局的状态栏将被隐藏,而其他布局则不受影响。因此,让我知道如何在mu app的所有布局上实现它。
答案 0 :(得分:1)
setContentView
之前的onCreate中,从诸如SharedPreferences之类的数据库中读取是否应隐藏状态栏。如果是这样,则将其隐藏。recreate()
,以便再次调用先前活动中的每个onCreate。答案 1 :(得分:1)
这实际上取决于您使用的android版本。例如,在Android 4.0及更低版本中,您可以通过执行以下操作来实现它:
<application
...
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" >
...
</application>
有关完整文档,请访问:https://developer.android.com/training/system-ui/status
编辑:以下代码对您的按钮更有利:
void HideStatusBar() {
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();
}
因此,当用户单击按钮时,调用此功能。请记住,这也会隐藏操作栏或工具栏,因此,如果您不想删除actionbar.hide()
部分。很好,但不幸的是,它仅适用于Android 4.1及更高版本,因此,如果您支持较低版本,则最好查看文档以获取线索。希望对您有帮助!
答案 2 :(得分:-1)
创建全屏主题并将其用于您的所有活动,或者创建Base类并使用下面的代码来实现它。
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
注意:在调用setContentView()之前,请使用上面的代码;
或尝试使用此样式:
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
希望有帮助! <3