Wie mache ich eine Aktivität im Vollbildmodus? Ich meine ohne die Benachrichtigungsleiste. Irgendwelche Ideen?
606
Wie mache ich eine Aktivität im Vollbildmodus? Ich meine ohne die Benachrichtigungsleiste. Irgendwelche Ideen?
Sie können es programmatisch tun:
public class ActivityName extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove title
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
Oder Sie können es über Ihre AndroidManifest.xml
Datei tun :
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
Bearbeiten:
Wenn Sie AppCompatActivity verwenden, müssen Sie ein neues Thema hinzufügen
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
und dann benutze es.
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>
Vielen Dank an https://stackoverflow.com/a/25365193/1646479
@android:style/Theme.Holo.Light.NoActionBar.Fullscreen
AppCompatActivity
, müssen Sie setzenrequestWindowFeature
vorsuper.onCreate
. Andernfalls erhalten Sie:android.util.AndroidRuntimeException: requestFeature() must be called before adding content
In KitKat ist eine Technik namens Immersive Full-Screen Mode verfügbar .
Beispiel
quelle
Wenn Sie das Thema nicht verwenden möchten,
@android:style/Theme.NoTitleBar.Fullscreen
weil Sie bereits ein eigenes Thema verwenden, können Sie es verwendenandroid:windowFullscreen
.In AndroidManifest.xml:
In styles.xml:
quelle
In der Datei AndroidManifest.xml :
Oder in Java- Code:
quelle
Wenn Sie AppCompat und ActionBarActivity verwenden, verwenden Sie diese Option
getSupportActionBar().hide();
quelle
Sei vorsichtig mit
Wenn Sie eine Methode verwenden, um die Aktionsleiste wie folgt festzulegen:
Es wird eine Nullzeigerausnahme verursacht.
quelle
Versuchen Sie dies mit Appcompat von
style.xml
. Es bietet Unterstützung für alle Plattformen.quelle
Mit Android Studio (die aktuelle Version ist derzeit 2.2.2) können Sie ganz einfach eine Vollbildaktivität hinzufügen.
Siehe die Schritte:
Erledigt!
Jetzt können Sie ganz einfach eine Vollbildaktivität erstellen (siehe Java-Klasse und Aktivitätslayout, um zu erfahren, wie die Dinge funktionieren)!
quelle
Für Benutzer von AppCompact ... style.xml
Dann tragen Sie den Namen in Ihr Manifest ein ...
quelle
Zuerst müssen Sie Ihr App-Thema mit "NoActionBar" wie unten festlegen
Fügen Sie diese Zeilen dann in Ihre Vollbildaktivität ein.
Die Aktionsleiste / Symbolleiste und auch die Statusleiste in Ihrer Vollbildaktivität werden ausgeblendet
quelle
AndroidManifest.xml
I. Ihre Haupt-App ist Theme.AppCompat.Light.DarkActionBar
Zum Ausblenden von ActionBar / StatusBar
style.xml
So blenden Sie die Systemnavigationsleiste aus
II. Ihr Haupt-App-Thema ist Theme.AppCompat.Light.NoActionBar
Zum Ausblenden von ActionBar / StatusBar
style.xml
So blenden Sie die Systemnavigationsleiste aus
Ähnlich wie
Theme.AppCompat.Light.DarkActionBar
.Demo
quelle
Danke für die Antwort @Cristian Ich habe einen Fehler bekommen
Ich habe das mit gelöst
quelle
requestWindowFeature(Window.FEATURE_NO_TITLE);
vorher einstellensuper.onCreate(savedInstanceState);
?show Full Immersive:
Verlassen Sie den immersiven Modus:
quelle
Ich wollte mein eigenes Thema verwenden, anstatt @android: style / Theme.NoTitleBar.Fullscreen zu verwenden. Aber es funktionierte nicht, wie ein Beitrag hier erwähnt hatte, also habe ich einige Anpassungen vorgenommen, um es herauszufinden.
In AndroidManifest.xml:
In styles.xml:
Hinweis: In meinem Fall musste ich
name="windowActionBar"
statt verwenden,name="android:windowActionBar"
bevor es richtig funktionierte. Also habe ich nur beide verwendet, um sicherzustellen, dass ich später auf eine neue Android-Version portieren muss.quelle
Hier ist ein Beispielcode. Sie können Flags ein- und ausschalten, um bestimmte Teile auszublenden / anzuzeigen.
Anschließend setzen Sie den Standardstatus zurück :
Sie können die oben genannten Funktionen über Folgendes aufrufen
onCreate
:quelle
KOTLIN
Nach dem Google Doc gibt es einen einfachen Weg:
Google Dokumente
quelle
TIPP: Mit getWindow (). SetLayout () kann Ihre Vollbildanzeige durcheinander bringen! Beachten Sie die Dokumentation für diese Methode:
http://developer.android.com/reference/android/view/Window.html#setLayout%28int,%20int%29
Für meine Zwecke stellte ich fest, dass ich setLayout mit absoluten Parametern verwenden musste, um die Größe meines Vollbildfensters korrekt zu ändern. Meistens funktionierte das gut. Es wurde von einem onConfigurationChanged () -Ereignis aufgerufen. Es gab jedoch einen Schluckauf. Wenn der Benutzer die App beendet, die Ausrichtung ändert und erneut eintritt, wird mein Code ausgelöst, der setLayout () enthält. Während dieses Zeitfensters für die erneute Eingabe wird meine Statusleiste (die vom Manifest ausgeblendet wurde) erneut angezeigt, aber zu keinem anderen Zeitpunkt würde setLayout () dies verursachen! Die Lösung bestand darin, nach dem Aufruf mit den folgenden harten Werten einen zusätzlichen setLayout () -Aufruf hinzuzufügen:
Das Fenster wurde dann korrekt angepasst, und die Statusleiste wurde unabhängig vom Ereignis, das dies ausgelöst hat, nicht erneut angezeigt.
quelle
quelle
Inside styles.xml ...
Das hat bei mir funktioniert. Hoffe es wird dir helfen.
quelle
Mit Kotlin habe ich das so gemacht:
Immersiver Modus
Der immersive Modus ist für Apps gedacht, bei denen der Benutzer stark mit dem Bildschirm interagiert. Beispiele sind Spiele, das Anzeigen von Bildern in einer Galerie oder das Lesen von paginierten Inhalten wie einem Buch oder Folien in einer Präsentation. Fügen Sie dazu einfach die folgenden Zeilen hinzu:
Sticky immersive
Im regulären immersiven Modus sorgt das System jedes Mal, wenn ein Benutzer von einer Kante wischt, dafür, dass die Systemleisten angezeigt werden. Ihre App merkt nicht einmal, dass die Geste aufgetreten ist. Wenn der Benutzer im Rahmen der primären App-Erfahrung möglicherweise tatsächlich vom Bildschirmrand wischen muss, z. B. beim Spielen eines Spiels, das viel Wischen erfordert, oder beim Verwenden einer Zeichen-App, sollten Sie stattdessen den immersiven Modus "Sticky" aktivieren .
Weitere Informationen: Aktivieren Sie den Vollbildmodus
Wenn Sie die Tastatur verwenden, wird manchmal die Statusleiste angezeigt, wenn die Tastatur angezeigt wird. In diesem Fall füge ich dies normalerweise meiner Stil-XML hinzu
styles.xml
Und auch diese Zeile zu meinem Manifest
quelle
Fügen Sie diesen Code einfach in die
onCreate()
Methode einquelle
Es hat bei mir funktioniert.
quelle
quelle
Nach viel Zeit ohne Erfolg kam ich mit meiner eigenen Lösung, die bei einem anderen Entwickler ähnlich ist. Wenn jemand sie braucht, ist es das. Mein Problem war, dass sich die Systemnavigationsleiste nach dem Anruf nicht versteckte. Auch in meinem Fall brauchte ich Landschaft, also nur für den Fall, kommentiere diese Zeile und das alles. Erstellen Sie zunächst Stil
Dies ist meine Manifestdatei
Dies ist meine Spalsh-Aktivität
}}
Und das ist meine Hauptaktivität im Vollbildmodus. onSystemUiVisibilityChange Diese Methode ist sehr wichtig, da sonst die Hauptnavigationsleiste von Android nach dem Aufruf erhalten bleibt und nicht mehr verschwindet. Wirklich irritierendes Problem, aber diese Funktion löst dieses Problem.
öffentliche Klasse MainActivity erweitert AppCompatActivity {
}}
Dies ist mein Begrüßungsbildschirm-Layout:
ich hoffe, dies wird dir helfen
quelle
https://developer.android.com/training/system-ui/immersive.html
Aktivität:
AndroidManifests:
quelle
Erstellen Sie eine leere Aktivität und fügen Sie zwei Zeilen hinzu
onCreate
.quelle
Verwenden Sie diese Methode nach setContentView in onCreate () und übergeben Sie das Window- Objekt an getWindow () .
Dieser Code funktioniert auch für den Kerbbildschirm. Um den Notch-Vollbildmodus zu überprüfen, benötigen Sie Android P. Wenn Sie jedoch ein Notch-Display-Telefon haben, gehen Sie zu Einstellung -> Anzeigeeinstellung -> App-Anzeigeverhältnis ---> Wählen Sie Ihre App aus ---> Es gibt zwei sichere Optionen Anzeige und Vollbild, bitte wählen Sie den Vollbildmodus und führen Sie die App aus. Sie können den Vollbildmodus auch ohne Android Pie sehen
quelle
Gehen Sie folgendermaßen vor, um Ihre Aktivität im Vollbildmodus anzuzeigen:
Dadurch werden die Symbolleiste und die Statusleiste ausgeblendet.
In einigen Fällen möchten Sie möglicherweise die Statusleiste mit einem transparenten Hintergrund anzeigen. In diesem Fall gehen Sie folgendermaßen vor:
Eine andere Alternative zum Ausblenden der Symbolleiste anstelle von
getSupportActionBar().hide()
:<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
Verwenden Sie für Kotlin-Liebhaber die Erweiterungsfunktionen:
Für den ersten Fall:
Und nenne das vorher
setContentView
:Für den zweiten:
Und nenne es vorher
setContentView
:quelle
Auf Android 10 hat keiner für mich funktioniert.
Aber ich, das hat perfekt funktioniert (1. Zeile in oncreate):
genießen :)
quelle
Anzeigen von Inhalten durch die Kerbe oder den Ausschnittbereich. Dies kann aus den Dokumenten helfen:
Das Wichtigste für mich war diese Zeile im Aktivitätsstil:
Für mich wollte ich ein Bild im immersiven Modus zeigen. Wenn ich darauf klicke, soll die System-Benutzeroberfläche (Status- und Navigationsleisten) angezeigt werden.
Hier ist meine Lösung:
1- In der Aktivität einige Methoden zum Ein- / Ausblenden der Systembenutzeroberfläche (Status- / Navigationsleisten)
2- Stellen Sie dies in der Stammansicht Ihres XML-Layouts sicher
3- Stil für Vollbildaktivität gibt Status- / Navigationsleisten einen halbtransparenten Hintergrund, wenn sie angezeigt werden:
quelle