Mit Desktopfenstern können Nutzer mehrere Apps gleichzeitig in veränderbaren App-Fenstern ausführen und so eine vielseitige, desktopähnliche Umgebung nutzen.
In Abbildung 1 sehen Sie die Bildschirmansicht, wenn die Desktopfensterfunktion aktiviert ist. Hinweise:
- Nutzer können mehrere Apps gleichzeitig ausführen.
- Die Taskleiste befindet sich an einer festen Position unten auf dem Display und zeigt die laufenden Apps an. Nutzer können Apps anpinnen, um schnell darauf zuzugreifen.
- Die neue anpassbare Kopfzeile enthält Steuerelemente wie Minimieren und Maximieren.
Auf Android-Tablets werden Apps standardmäßig im Vollbildmodus geöffnet. Um eine App in einem Desktop-Fenster zu starten, halten Sie den Fensterziehpunkt an der oben auf den Bildschirm und ziehen Sie den Ziehpunkt innerhalb der Benutzeroberfläche (siehe Abbildung 2).
Wenn eine App in einem Desktop-Fenster geöffnet ist, werden andere Apps gut.
Nutzer können die Desktopfenster auch über das Menü aufrufen, das unter dem Fenster-Dreipunkt-Menü angezeigt wird, wenn Sie darauf tippen oder klicken. Alternativ können Sie auch die Tastenkombination Meta-Taste (Windows-, Befehls- oder Suchtaste) + Strg + Abwärts verwenden.
Nutzer schließen die Desktop-Fenster, indem sie alle aktiven Fenster schließen oder Fensterziehpunkt oben in einem Desktop-Fenster und ziehen die App nach oben des Bildschirms. Die Tastenkombination Meta + H wird ebenfalls beendet. und führt Apps wieder im Vollbildmodus aus.
Wenn Sie zu den Desktop-Fenstern zurückkehren möchten, tippen oder klicken Sie auf die Kachel „Desktop-Bereich“ in der Bildschirm „Letzte“.
Größe anpassbar und Kompatibilitätsmodus
Beim Desktop-Fenstermodus kann die Größe von Apps mit gesperrter Ausrichtung frei angepasst werden. Das bedeutet, dass Nutzer die App auch dann im Querformat anzeigen können, wenn eine Aktivität auf das Hochformat festgelegt ist.
Bei Apps, die als nicht skalierbar deklariert wurden (resizableActivity = false
), wird die Benutzeroberfläche skaliert, wobei das Seitenverhältnis beibehalten wird.
Kamera-Apps, bei denen die Ausrichtung gesperrt ist oder die nicht skalierbar sind, werden beim Sucher der Kamera besonders behandelt: Das Fenster kann vollständig skaliert werden, der Sucher behält jedoch das gleiche Seitenverhältnis bei. Indem wir davon ausgehen, immer im Hoch- oder Querformat ausgeführt werden, hartcodieren oder anderweitig Annahmen, die zu Fehlkalkulationen in der Vorschau oder dem aufgenommenen Bild führen Ausrichtung oder Seitenverhältnis, was zu gestreckten, seitlich gedrehten oder auf dem Kopf stehenden Bildern führt.
Bis Apps vollständig responsive Kameras unterstützen, bietet die spezielle Behandlung eine einfachere Nutzererfahrung, die die Auswirkungen falscher Annahmen abmildert.
Weitere Informationen zum Kompatibilitätsmodus für Kamera-Apps finden Sie unter Kompatibilitätsmodus für Geräte.
Anpassbare Header-Insets
Alle Anwendungen, die in Desktop-Fenstern ausgeführt werden, haben eine Headerleiste, auch in
immersiven Modus.
Achten Sie darauf, dass die Inhalte Ihrer App nicht von der Kopfzeile verdeckt werden.
Die Kopfzeile ist eine eingeblendete Titelleiste: androidx.compose.foundation.layout.WindowInsets.Companion.captionBar()
; in Ansichten WindowInsets.Type.captionBar()
, die zu den Systemleisten gehört.
Weitere Informationen zum Umgang mit Einblendungen finden Sie unter Inhalte in Ihrer App randlos anzeigen und Fenstereinblendungen in Compose bearbeiten.
Auch die Headerleiste kann angepasst werden. Mit Android 15 wurde der Darstellungstyp APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND
eingeführt, um die Kopfzeile transparent zu machen, damit Apps benutzerdefinierte Inhalte in der Kopfzeile zeichnen können.
Apps gestalten dann den oberen Teil ihrer Inhalte so, das Aussehen der Untertitelleiste (Hintergrund, benutzerdefinierter Inhalt usw.) mit dem mit Ausnahme der System-Untertitelelemente (Schließen- und Maximieren-Schaltflächen), die vom System in der transparenten Untertitelleiste über der App gezeichnet.
Apps können das Aussehen der Systemelemente in der Beschriftung für helle und dunkle Designs mit APPEARANCE_LIGHT_CAPTION_BARS
umschalten, ähnlich wie bei der Statusleiste und der Navigationsleiste.
Mit Android 15 wurde auch die Methode WindowInsets#getBoundingRects()
eingeführt, mit der Apps Untertitelleisten genauer untersuchen können.
Apps können zwischen Bereichen unterscheiden, in denen das System Systemelemente anzeigt, und nicht genutzten Bereichen, in denen Apps benutzerdefinierte Inhalte platzieren können, ohne Systemelemente zu überlappen.
Die Liste der Rect
-Objekte, die von der API zurückgegeben werden, geben Systemregionen an,
sollten vermieden werden. Im verbleibenden Bereich (berechnet durch Subtraktion der Rechtecke von den Einzügen der Untertitelleiste) kann die App zeichnen, ohne Systemelemente zu überlappen und Eingaben zu erhalten.
Multitasking und Multi-Instanz-Unterstützung
Multitasking ist ein zentrales Element von Desktopfenstern. Wenn Sie mehrere Instanzen Ihrer App zulassen, kann die Produktivität der Nutzer erheblich gesteigert werden.
In Android 15 wird PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI eingeführt. Mit diesem Attribut können Entwickler angeben, dass die System-UI für die App angezeigt werden soll, damit sie als mehrere Instanzen gestartet werden kann.
App-Instanzen per Ziegesten verwalten
Im Mehrfenstermodus können Nutzer eine neue App-Instanz durch Ziehen einer Ansicht starten aus dem App-Fenster. Nutzer können Elemente auch zwischen Instanzen derselben App verschieben.
In Android 15 werden zwei Flags eingeführt, um das Drag-and-drop-Verhalten anzupassen:
DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG
: Gibt an, dass ein unbehandelter Drag-Vorgang an das zu startende System delegiert werden sollte wenn kein sichtbares Fenster den Abbruch vornimmt. Wenn dieses Flag verwendet wird, muss der AufruferClipData
mit einemItem
angeben, der eine unveränderlicheIntentSender
zu einer zu startenden Aktivität enthält (sieheClipData.Item.Builder#setIntentSender()
). Ob der Intent gestartet wird oder nicht, hängt von Faktoren wie der aktuellen Bildschirmgröße oder dem Fenstermodus ab. Wenn das System den Intent nicht startet, wird er durch das normale Drag-and-drop-Verfahren abgebrochen.DRAG_FLAG_GLOBAL_SAME_APPLICATION
: Gibt an, dass ein Drag-Vorgang die Fenstergrenzen überschreiten kann (für mehrere Instanzen derselben Anwendung).Wenn
startDragAndDrop()
mit diesem Flag aufgerufen wird, können nur sichtbare Fenster derselben Anwendung am Ziehen teilnehmen und die gezogenen Inhalte empfangen.
Zusätzliche Optimierungen
Sie können das Starten von Apps anpassen und Apps vom Desktopfenster in den Vollbildmodus umschalten.
Standardgröße und -position angeben
Nicht alle Apps benötigen ein großes Fenster, um Nutzern einen Mehrwert zu bieten, auch wenn ihre Größe angepasst werden kann.
Sie können die ActivityOptions#setLaunchBounds()
verwenden
Methode zum Angeben einer Standardgröße und -position beim Start einer Aktivität.
Vollbildmodus über den Desktop-Bereich aktivieren
Apps können programmatisch in den Vollbildmodus wechseln, indem sie folgenden Befehl aufrufen:
Activity#requestFullScreenMode()
Bei dieser Methode wird die App direkt über einen Desktop-Fenster im Vollbildmodus angezeigt.