Wie verstecke ich die Systemnavigationsleiste in Tablets?
Lesezeit: 6 Minuten
John
Bei meinem Tablet hat es die folgende Leiste, um zurück, nach Hause usw. zu steuern (ich kenne den richtigen Namen nicht, Statusleiste? Steuerleiste? Aktionsleiste? oder andere)
Im Programm verwenden Sie die folgende Methode, um einen Vollbildmodus zu erhalten.
Aber ich weiß nicht, warum die Bar noch hier drin ist. Aus diesem Grund kann ich nicht die richtige Bildschirmgröße haben.
Wer kann mir sagen, wie ich es entfernen kann?
Kann irgendeine Methode diese Systemleiste ignorieren, um die richtige Bildschirmgröße zu haben?
– John
26. September 12 um 15:47 Uhr
Es scheint eine zu geben UNDOKUMENTIERT Flagge dafür:
yourGreatView.setSystemUiVisibility(8);
keine schwarze Fußzeile (“versteckte” Systemleiste)
ändert die Ansichtsgröße, wenn die Tastatur angezeigt wird (keine überlappenden Eingänge)
Verifiziert auf Android 4.1.2 (API 16)
Verifiziert auf Android 4.1.1 (API 16)
Bestätigt, dass es unter Android 4.0.4 (API 15) nicht funktioniert
(alle Tabletten)
Dies muss in jeder Frage zu Uisystem auf ICS gepostet werden. Dies funktioniert gut und ist cooler als der LOW PROFILE-MODUS. Ich kann Ihnen nicht genug dafür danken
– Jebik
5. Juni 13 um 12:22 Uhr
seltsam, ich habe 2 Tablets mit 4.2.2. bei dem einen funktioniert es und beim anderen nicht. müssen noch andere Einstellungen beteiligt sein?
– steveh
3. Juli 14 um 0:20 Uhr
Ja, es ist schwer zu stimmen, wenn es für die meisten von uns nicht funktioniert. WAAAYYY zu viele Varianten von Android, seiner Hardware, …. Ich hasse das iPhone, aber Mann, ich habe wirklich die Nase voll davon …
– Kevin
23. Januar 15 um 1:10 Uhr
Funktioniert nicht auf Android 5.0.1, ich mache es wie folgt: @Override protected void onResume() { super.onResume(); View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility(8);
– Shajeel Afzal
26. August 15 um 17:10 Uhr
Ich kann bestätigen, dass es auf Android 5.0.1, Nexus 6p nicht funktioniert.
– Sinissa
17. Oktober 15 um 2:36 Uhr
Swaam
Bei Tablets mit Android 4+ ist es nicht möglich, das auszublenden System-/Navigationsleiste.
Von Dokumentation (Steuerelemente für die Sichtbarkeit der System-UI Sektion) :
Der SYSTEM_UI_FLAG_HIDE_NAVIGATION ist ein neues Flag, das das vollständige Ausblenden der Navigationsleiste anfordert. Beachten Sie, dass dies nur für die Navigationsleiste funktioniert, die von einigen Mobilteilen verwendet wird (Die Systemleiste auf Tablets wird nicht ausgeblendet).
Sie können jedoch versuchen, die Systemleiste zu dimmen, wie dies manchmal während des Spielens und der Videowiedergabe der Fall ist.
Der SYSTEM_UI_FLAG_LOW_PROFILE Flag ersetzt das Flag STATUS_BAR_HIDDEN. Wenn dieses Flag gesetzt ist, aktiviert es den „Low-Profile“-Modus für die Systemleiste oder Navigationsleiste. Navigationsschaltflächen werden abgeblendet und andere Elemente in der Systemleiste werden ebenfalls ausgeblendet. Die Aktivierung dieser Option ist nützlich, um fesselndere Spiele ohne Ablenkung für die Systemnavigationsschaltflächen zu erstellen.
Kann irgendeine Methode diese Systemleiste ignorieren, um die richtige Bildschirmgröße zu haben?
– John
26. September 2012 um 15:46 Uhr
Sie könnten versuchen, die Systemleiste zu dimmen.
– Swayam
26. September 12 um 15:49 Uhr
wie kann man dimmen? Könntest du es mir sagen?
– John
26. September 2012 um 16:03 Uhr
Ich habe es gefunden. stackoverflow.com/questions/5883789/…
– John
26. September 2012 um 16:06 Uhr
Ja, es würde funktionieren, wenn Sie Android-Versionen vor ICS verwenden. Nach Android 4+ muss die Flagge sein SYSTEM_UI_FLAG_LOW_PROFILE , wie ich bereits in meiner Antwort erwähnt habe. Verwenden Sie für Android 4+ myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); um die Systemleiste zu dimmen
– Swayam
26. September 12 um 16:11 Uhr
Ab Android 4.4 können Sie die Navigationsleiste komplett ausblenden und unsichtbar bleiben lassen, indem Sie eine Kombination aus Vollbild und Immersion verwenden:
Es scheint, wenn ich das erste Ansichtselement in setSystemUiVisibility entferne, habe ich immer noch meine Aktionsleiste, aber keine Status- und Navigationsleiste. Das Öffnen der Tastatur bringt jedoch die Balken zurück. Gibt es eine Möglichkeit, dies zu verhindern?
– Rand
25. Mai ’15 um 15:53 Uhr
public class Utils {
public static void hideNavigations(Activity context) {
View decorView = context.getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
Eine sehr nukleare Option besteht darin, einfach die SystemUI.apk aus /system/app/ zu löschen. Wenn Sie dies jedoch warnen, wird es vollständig vom Tablet entfernt. Ich mache das auf einem Tablet, das ich für einen Frontpanel-Kiosk verwende, dann stelle ich das Tablet so ein, dass es in meine App bootet.
Ich verwende 4.4.4 auf einem Nexus 7 und SystemUI.apk befand sich stattdessen in /system/priv-app.
– TimH – Kodidakt
6. Dezember 14 um 1:05 Uhr
Was ist der einfache Weg, um auf diesem Weg zu erreichen?
– Shajeel Afzal
26. August 15 um 16:51 Uhr
Adb-Shell “rm /system/app/SystemUI.apk”
– richmb
30. August 15 um 23:01 Uhr
Sie sollten die Datei SystemUI.apk sichern, bevor Sie diese löschen, falls Sie sie zurücksetzen müssen. adb pull /system/app/SystemUI.apk. Dieser Pfad kann je nach Tablet unterschiedlich sein. Verwenden Sie die ADB-Shell und erkunden Sie das Dateisystem auf Ihrem Tablet. Diese Operationen erfordern Root-Privilegien und diese Partition muss als beschreibbar gemountet werden. Möglicherweise müssen Sie “mount -o remount,rw /system” ausführen und dann die Datei SystemUI.apk rm.
– richmb
30. August 15 um 23:07 Uhr
Wie andere Leute sagen, verwenden Sie den Befehl “pm disable com.android.systemui” im Root-Modus, also führen Sie den folgenden Code diesen Befehl in Ihrer Android-App aus, rufen Sie einfach die folgende Methode auf, Ihr Tablet muss gerootet sein.
private void hideNavigationBar(){
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("pm disable com.android.systemuin");
os.flush();
os.writeBytes("exitn");
os.flush();
process.waitFor();
//////////////////////////////////////
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Dieser Code verbirgt die Navigationsleiste auf dem Android-System, um die Systemleiste wieder anzuzeigen, verwenden Sie “pm enable com.android.systemui” anstelle von “pm disable com.android.systemui” im vorherigen Code.
Ich verwende 4.4.4 auf einem Nexus 7 und SystemUI.apk befand sich stattdessen in /system/priv-app.
– TimH – Kodidakt
6. Dezember 14 um 1:05 Uhr
Was ist der einfache Weg, um auf diesem Weg zu erreichen?
– Shajeel Afzal
26. August 15 um 16:51 Uhr
Adb-Shell “rm /system/app/SystemUI.apk”
– richmb
30. August 15 um 23:01 Uhr
Sie sollten die Datei SystemUI.apk sichern, bevor Sie diese löschen, falls Sie sie zurücksetzen müssen. adb pull /system/app/SystemUI.apk. Dieser Pfad kann je nach Tablet unterschiedlich sein. Verwenden Sie die ADB-Shell und erkunden Sie das Dateisystem auf Ihrem Tablet. Diese Operationen erfordern Root-Privilegien und diese Partition muss als beschreibbar gemountet werden. Möglicherweise müssen Sie “mount -o remount,rw /system” ausführen und dann die Datei SystemUI.apk rm.
– richmb
30. August 15 um 23:07 Uhr
Ferdau
Da die Systemleiste zum Navigieren in Android verwendet wird, gibt es keine einfache Möglichkeit, dies zu erreichen. Sie können die Steuerelemente deaktivieren / dimmen:
View v = findViewById(R.id.view_id);
v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
Aber Sie können die Größe des Bildschirms ohne die Systemleiste erhalten (nicht sicher, ab welcher Version, ich glaube 3.1)
Method rawW = Display.class.getMethod("getRawWidth");
Method rawH = Display.class.getMethod("getRawHeight");
int width = (Integer)mGetRawW.invoke(dp);
int height = (Integer)mGetRawH.invoke(dp);
Kann irgendeine Methode diese Systemleiste ignorieren, um die richtige Bildschirmgröße zu haben?
– John
26. September 12 um 15:47 Uhr