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);
    }

onCreateonResume 方法中隐藏通知栏对我有效:

    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
    }