Wie wir alle gesehen haben, ändert sich die Android-API ständig. Hier ist eine aktuellere Antwort auf die Frage.
Laut diesem Dokument: https://developer.Android.com/training/system-ui/status.html
Ausblenden der Statusleiste unter Android 4.1 und höher
Sie können den Status ausblenden Statusleiste unter Android 4.1 (API-Level 16) und höher ausblenden, indem Sie setSystemUiVisibility(). setSystemUiVisibility() setzt UI-Flags auf der individuellen Ansichtsebene; diese Einstellungen werden auf der Fensterebene Ebene aggregiert. Die Verwendung von setSystemUiVisibility() zum Setzen von UI-Flags gibt Ihnen mehr granularere Kontrolle über die Systemleisten als mit WindowManager-Flags. Dieses Snippet blendet die Statusleiste aus:
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();
Ich entlehne das groovige XOR aus den anderen Antworten:
public void toggleFullscreen() {
View decorView = getWindow().getDecorView();
int uiOptions = decorView.getSystemUiVisibility();
uiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
Dies funktioniert (ich benutze es) und scheint genauso zu funktionieren wie die getWindow().setAttributes()
Lösung, aber es ist der empfohlene Weg in den Entwicklerdokumenten.