Android-API < 35 Vollbild-App-VerwirrungJava

Java-Forum
Anonymous
 Android-API < 35 Vollbild-App-Verwirrung

Post by Anonymous »

Ich arbeite an einer in Java geschriebenen Android-App (Heimprojekt). Ich bin ein gelegentlicher Android-Entwickler und um die Vollbildfunktionalität zu erreichen, habe ich die gleichen Schritte angewendet, die ich vor ein paar Jahren erfolgreich durchgeführt habe:
  • Ändern Sie das Design :

false
true
true
false





  • Hauptaktivität (erweitert FragmentActivity, die einzige Aktivität, die ich habe, seit ich Fragmente verwende):
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this); //apparently for API 35+ this is the only thing I need

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

setContentView(R.layout.activity_main);
... }


Das Problem ist, dass meine App beim Testen auf API 34 sozusagen im Vollbildmodus angezeigt wird. Oben befindet sich eine dünne schwarze Linie, an der Stelle, an der sich die Systemleiste befinden sollte. Außerdem gab mir der Play Store eine Warnung, dass ich veraltete Methoden für die Vollbildansicht verwende.
Um das Problem zu beheben, habe ich die Google-Dokumentation durchgesehen und festgestellt, dass es verschiedene Methoden für die API-Versionen 29–35 gibt (mein SDK wird mindestens unterstützt). ist 25), aber anscheinend konnte ich die Implementierung nicht richtig verstehen, da immer, wenn ich Lösungen aus den Google-Dokumenten ausprobierte, entweder die schwarze Linie blieb oder die App im Vollbildmodus angezeigt wurde und die Systemleiste über dem oberen Teil meiner App angezeigt wurde. Ich habe versucht, Einfügungen und Ränder zu verwenden, wie in den Google-Dokumenten vorgeschlagen, aber es gab keine Ergebnisse.
Ich war so verzweifelt, dass ich sogar GTP nach der Lösung gefragt habe, und natürlich bekam ich spekulative und nicht funktionierende „Lösungen“ und „Ideen“.
Können Sie mir bitte dabei helfen? Wie implementiert man eine ordnungsgemäße Vollbildunterstützung, die für die API-Versionen 29–35 funktioniert?
Es ist unglaublich, so eine triviale Alltagssache, wie die Anzeige einer App im Vollbildmodus ohne andere Elemente Der Bildschirm ist so aufwändig und erfordert mehr Code als das Festlegen einer bloßen Eigenschaft der Aktivität, hahah
BEARBEITEN:
Das ist der letzte Versuch, den ich versucht habe:

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

EdgeToEdge.enable(this);

Window window = getWindow();
View decorView = getWindow().getDecorView();

WindowCompat.setDecorFitsSystemWindows(window, false);
WindowInsetsControllerCompat controllerCompat = new WindowInsetsControllerCompat(window, decorView);
controllerCompat.hide(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.navigationBars());
controllerCompat.setSystemBarsBehavior(WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);


und das Ergebnis, das ich erhalte (oben auf dem Bildschirm):
[img]https: //i.sstatic.net/f5zisSY6.png[/img]

Image

Ich habe auch alles aus meiner theme.xml entfernt, das übergeordnete Theme ist nur Theme.Material3.Light.NoActionBar

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post