Fokus in Jetpack Compose Glimmer

XR‑Geräte, für die der Leitfaden gilt
Dieser Leitfaden hilft Ihnen dabei, Erlebnisse für die folgenden Arten von XR-Geräten zu entwickeln.
Displaybrillen

Alle Jetpack Compose Glimmer-Komponenten sind für die Verwendung mit Standardeingabemethoden wie Tippen oder Wischen auf dem Touchpad der Brille konzipiert. Sie reagieren aber auch auf Eingabebefehle auf niedrigerer Ebene, die spezifisch für die Hardware von Displaybrillen sind. Die Jetpack Compose Glimmer-Komponenten verarbeiten die erforderlichen Eingabeereignisse automatisch.

Verwenden Sie für Standardaktionen wie Scrollen und Ziehen die Jetpack Compose Glimmer-Komponenten, um eine einheitliche Nutzererfahrung zu bieten. Für benutzerdefinierte Komponenten oder spezielle Interaktionsverhalten können Sie jedoch vorhandene Compose APIs wie Modifier.draggable oder Modifier.scrollable verwenden.

Zeigereingabe und Fokus

Bei Displaybrillen kann die Zeigereingabe den Fokus beeinflussen:

  • Tippen: Direkte Interaktion zum Aktivieren eines Elements. Der Fokus wird auf ein Element verschoben, wenn ein Nutzer damit interagiert.
  • Wischen: Wird für die Navigation und zum Scrollen verwendet. Nicht verarbeitete Wischgesten werden automatisch in Fokusbewegungen umgewandelt, sodass eine nahtlose UI-Navigation ohne direkte Zeigereingabe möglich ist.

Die Fokusbewegung und -reihenfolge ändern sich, wenn ein Nutzer in Ihrer App navigiert.

Fokusbewegung

In einem scrollbaren Container bewegt sich der Fokus kontinuierlich mit einer Wischbewegung auf dem Touchpad. Bei einzelnen Elementen wie einer Reihe von Schaltflächen wird der Fokus mit jeder Wischbewegung um ein Element verschoben.

Fokusreihenfolge

Wie in Jetpack Compose verwendet Jetpack Compose Glimmer die eindimensionale Fokussuche. Weitere Informationen zur Reihenfolge der Fokusbewegung finden Sie unter Fokusbewegung Reihenfolge ändern.

Wenn Sie das Element ändern möchten, auf das der Fokus anfänglich gesetzt wird, können Sie ein Modifier.focusGroup() auf oberster Ebene hinzufügen und eine benutzerdefinierte onEnter focusProperty angeben:

Modifier.focusProperties {
    onEnter = {
        initialFocus.requestFocus()
        // Prevent focus from exiting the group
        cancelFocusChange()
    }
}
.focusGroup()

Scrollen in Containern

Für eine optimale Nutzererfahrung sollten scrollbare Container wie Listen die einzige Hauptkomponente auf einem Bildschirm sein. Platzieren Sie scrollbare Listen nicht direkt über oder unter anderen interaktiven Elementen wie Schaltflächen, um Verwirrung bei der Navigation zu vermeiden und eine reibungslose, vorhersehbare Fokusbewegung zu ermöglichen.

Standardfokusstatus

Jetpack Compose Glimmer implementiert Standardfokusstatus für alle interaktiven Komponenten, einschließlich Oberflächen, Karten und Listenelementen. So wird ein einheitliches und klares visuelles Feedback bei der Nutzerinteraktion ermöglicht.

Abbildung 1. Drei Fokusstatus in Jetpack Compose Glimmer, die durch umrissbasiertes visuelles Feedback unterschieden werden.
  • Standard: Die Hintergrundfarbe der Schaltfläche wird von GlimmerTheme.colors.surface abgeleitet. Der Hauptinhalt berechnet die Farbe des Inhalts dieser Oberfläche.

  • Fokus: Die Rahmenbreite wird erhöht, um den Fokus zu kennzeichnen.

  • Fokus + gedrückt: Der Hintergrund wird auf GlimmerTheme.colors.surface mit erhöhter Deckkraft gesetzt, um den ausgewählten Status zu kennzeichnen.