Jetpack Compose na potrzeby XR
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
12 lutego 2025 r. | - | - | - | 1.0.0-alpha02 |
Deklarowanie zależności
Aby dodać zależność od XR Compose, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha01" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha01") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha01") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos w sprawie istniejącego problemu, klikając przycisk z gwiazdką.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.0
Wersja 1.0.0-alpha02
12 lutego 2025 r.
androidx.xr.compose:compose:1.0.0-alpha02
i androidx.xr.compose:compose-testing:1.0.0-alpha02
są dostępne. Wersja 1.0.0-alpha02 zawiera te komity.
Nowe funkcje
- Panel aktywności może teraz przyciemnić zawartość, gdy włączony jest dialog przestrzenny.
- Interfejs
Orbiter
API można teraz używać w kontekstachSubspaceComposable
. Dołączy on elementy Orbiters do ich najbliższego elementu nadrzędnego typu composable opartego naSubspaceComposable
.SubspaceLayout
- Wprowadziliśmy
LayoutCoordinatesAwareModifierNode
, aby umożliwić stosowanie niestandardowych modyfikatorów opartych na pozycjonowaniu. - Dodaliśmy do
SubspaceModifier.Node
metody cyklu życia dotyczące dołączania i odłączania. - Dodano
scaleWithDistance
do modyfikatora ruchomego. Gdy opcjascaleWithDistance
jest włączona, przenoszony element podprzestrzeni zostanie powiększony lub zmniejszony. Zachowa też każdą skalę, którą miała przed przemieszczeniem.
Zmiany w interfejsie API
- Usunięto
SessionCallbackProvider
i zastąpiono je elementemSpatialCapabilities
.
Inne zmiany
- Zmniejszono wartość
minSDK
do 24. Wszystkie interfejsy Jetpack XR nadal wymagają interfejsu API 34 w czasie wykonywania. - Konstruktory
Orbiter
,EdgeOffset.inner
,EdgeOffset.outer
iEdgeOffset.overlap
nie są już metodami@Composable
, co pozwala na ich używanie w kontekstach nieskompozycyjnych. - Zaktualizuj poziomy dźwięku przestrzennego, aby pasowały do najnowszej specyfikacji UX.
- Wdróż interfejs
SubspaceSemanticsInfo
doMeasurableLayout
. - Nazwa
SubspaceModifierElement
została zmieniona naSubspaceModifierNodeElement
.
Poprawki błędów
- Poprawki mające na celu stabilizację
SubspaceModifier
.SubspaceModifier
powinien działać bardziej niezawodnie. Modyfikatory przesunięcia, obracania, skalowania, przemieszczania i zmiany rozmiaru powinny być teraz dostępne w dowolnej kolejności.
Wersja 1.0.0-alpha01
12 grudnia 2024 r.
androidx.xr.compose:compose-*1.0.0-alpha01
został zwolniony.
Funkcje wersji początkowej
Pierwsza wersja Jetpack Compose dla deweloperów przeznaczona na XR. Korzystaj z dobrze znanych koncepcji Compose, takich jak wiersze i kolumny, aby tworzyć układy UI przestrzennego w XR, niezależnie od tego, czy przenosisz istniejące aplikacje 2D do XR, czy tworzysz nowe aplikacje XR od podstaw. Biblioteka ta zawiera komponenty do tworzenia aplikacji w przestrzeni i w przestrzeni 3D, takie jak panele 3D i orbitery, które umożliwiają umieszczanie dotychczasowego interfejsu użytkownika opartego na Compose 2D lub Views w układzie 3D. Wprowadza ona komponent podprzestrzeni Volume, który umożliwia umieszczanie elementów SceneCore, takich jak modele 3D, względem interfejsu użytkownika. Więcej informacji znajdziesz w tym przewodniku dla programistów:
Subspace
: ten komponent można umieścić w dowolnym miejscu w hierarchii UI aplikacji, co umożliwia zachowanie układów interfejsu 2D i przestrzennego bez utraty kontekstu między plikami. Dzięki temu łatwiej jest udostępniać takie elementy jak istniejąca architektura aplikacji między XR a innymi formatami bez konieczności przenoszenia stanu przez całe drzewo interfejsu użytkownika ani przeprojektowywania aplikacji.SpatialPanel: panel przestrzenny to komponent podprzestrzeni, który umożliwia wyświetlanie treści aplikacji. Możesz na przykład wyświetlić film, obrazy statyczne lub inne treści w panelu przestrzennym.
Orbiter: orbiter to przestrzenny element interfejsu. Jest ona przeznaczona do dołączania do odpowiedniego panelu przestrzennego i zawiera elementy nawigacji oraz działania kontekstowe powiązane z tym panelem. Jeśli na przykład utworzysz panel przestrzenny, aby wyświetlać treści wideo, możesz dodać elementy sterujące odtwarzaniem filmu w orbicie.
Objętość: umieszczanie elementów SceneCore, takich jak modele 3D, względem interfejsu.
Układ przestrzenny: możesz utworzyć wiele paneli przestrzennych i umieścić je w ramach układu przestrzennego za pomocą elementów
SpatialRow
,SpatialColumn
,SpatialBox
iSpatialLayoutSpacer
. Aby dostosować układ, użyjSubspaceModifier
.Komponenty UI przestrzennego: te elementy można ponownie wykorzystać w interfejsie 2D, a ich atrybuty przestrzenne będą widoczne tylko wtedy, gdy włączone są funkcje przestrzenne.
SpatialDialog
: panel przesunie się nieco w głębi, aby wyświetlić wyskakujące okienko.SpatialPopUp
: panel przesunie się nieco w głębi, aby wyświetlić wyskakujące okienkoSpatialElevation
: można ustawić opcjęSpatialElevationLevel
, aby dodać wzniesienie.
SpatialCapabilities: możliwości przestrzenne mogą się zmieniać, gdy użytkownicy korzystają z aplikacji lub systemu, a nawet mogą być zmieniane przez samą aplikację – na przykład przez przejście do pokoju domowego lub pełnego pokoju. Aby uniknąć problemów, aplikacja musi sprawdzić wartość
LocalSpatialCapabilities.current
, aby określić, które interfejsy API są obsługiwane w bieżącym środowisku.isSpatialUiEnabled
: Elementy UI przestrzennego (np. SpatialPanel)isContent3dEnabled
: obiekty 3DisAppEnvironmentEnabled
: środowiskoisPassthroughControlEnabled
: czy aplikacja może kontrolować stan przepuszczaniaisSpatialAudioEnabled
: dźwięk przestrzenny
Znane problemy
- Obecnie do korzystania z Jetpack Compose na potrzeby XR wymagana jest minimalna wersja 30. Aby obejść ten problem, możesz dodać do pliku manifestu wpis
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
, aby móc skompilować i uruchomić aplikację z minSDK 23. - Aplikacje Jetpack XR wymagają obecnie w pliku AndroidManifest.xml użycia uprawnienia
android.permission.SCENE_UNDERSTANDING
. - Gdy aplikacja uruchamia się bezpośrednio w Trybie pełnym, korzystając z właściwości
PROPERTY_XR_ACTIVITY_START_MODE
w pliku manifestu, czynności lub aplikacje są początkowo otwierane w obszarze Home, a potem przechodzą do Trybu pełnego. - Modele glTF w elementach składanych w objętości mogą początkowo migać w niewłaściwym miejscu.
- Użycie SpatialDialog w panelu, który został przesunięty, spowoduje przesunięcie treści w niewłaściwym kierunku.