Android退出后隐藏状态栏
Android Hiding the status bar after exiting
所以我有一个隐藏状态栏的代码,但唯一的问题是,如果我转到主页然后重新打开应用程序(仍然 运行),状态栏就会出现。此外,当我按下选项按钮(下面的按钮)时,它会显示状态栏。有没有办法在重新打开 运行 应用程序时禁用选项按钮并隐藏状态栏?
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions)
发生这种情况是因为当您的 activity 暂停时 Statusbar
变得可见,因此您需要在 activity 的 onResume
中隐藏 Statusbar
,一些东西像这个例子:
@Override
protected void onResume() {
super.onResume();
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions)
}
现在,如果您恢复该应用程序,它将Statusbar
保持隐藏状态。
android 清单
select / 设置主题为NoActionBar
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.NoActionBar">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
</application>
备注
如果你只想要 single activity
那么,
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
现在将其从您的 MainActivity.java
、
中删除
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
在 onCreate
和 onResume
方法中隐藏通知栏对我有效:
public override fun onCreate(
savedInstanceState: Bundle?
) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Hide the status bar
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
}
public override fun onResume() {
super.onResume()
// Hide the status bar
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
}
所以我有一个隐藏状态栏的代码,但唯一的问题是,如果我转到主页然后重新打开应用程序(仍然 运行),状态栏就会出现。此外,当我按下选项按钮(下面的按钮)时,它会显示状态栏。有没有办法在重新打开 运行 应用程序时禁用选项按钮并隐藏状态栏?
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions)
发生这种情况是因为当您的 activity 暂停时 Statusbar
变得可见,因此您需要在 activity 的 onResume
中隐藏 Statusbar
,一些东西像这个例子:
@Override
protected void onResume() {
super.onResume();
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions)
}
现在,如果您恢复该应用程序,它将Statusbar
保持隐藏状态。
android 清单
select / 设置主题为NoActionBar
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.NoActionBar">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
</application>
备注
如果你只想要 single activity
那么,
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
现在将其从您的 MainActivity.java
、
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
在 onCreate
和 onResume
方法中隐藏通知栏对我有效:
public override fun onCreate(
savedInstanceState: Bundle?
) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Hide the status bar
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
}
public override fun onResume() {
super.onResume()
// Hide the status bar
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
}