Jetpack Compose dla XR
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja alfa |
|---|---|---|---|---|
| 21 października 2026 r. | - | - | 1.0.0-beta02 | - |
Deklarowanie zależności
Aby dodać zależność od XR Compose, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w repozytorium Maven 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-beta02" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-beta02" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-beta02") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-beta02") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Prześlij opinię
Twoja opinia pomoże nam ulepszyć Jetpacka. Daj nam znać, jeśli znajdziesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki. Przed utworzeniem nowego problemu zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.0
Wersja 1.0.0-beta02
21 października 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-beta02 i androidx.xr.compose:compose-testing:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Biblioteki są teraz kierowane na Kotlina 2.2 i wymagają kotlinc 2.2 (I82396, b/498369605).
- Zmieniono nazwę parametru
halfLifeMsw narzędziuFollowMode.soft()nahalfLifeMillis. (I39187) - Przekonwertowano
PitchLimitsna@JvmInline value class, pakując 2 liczby zmiennoprzecinkowe doLong, aby wyeliminować alokacje obiektów. (Id43c3) - Dodano nowy parametr dla
FollowMode.soft: parametryhalfLifeMs,startDelayistartThresholds. Usunęliśmy parametrdurationMs, ponieważ nie jest już potrzebny, gdy przechodzimy z algorytmusmoothStepna algorytmexponentialDecay. (If0140) - Usuń wycofane przeciążenie
SpatialActivityPanel. Zamiast tego użyj przeciążeniaSpatialActivityPanel, które akceptujeSpatialActivityPanelController. (I5abc3) - Włącz przejścia między treściami Composable 3D i 2D w ramach jednej aktywności w
FullSpaceMode. Ta zmiana jest ograniczona przezSpatialComposeFlags.isMainPanelResetOnSubspaceDisposeEnabled. (I4e237) - Udostępniono eksperymentalne przeciążenie
Subspace, które przyjmuje parametrFollowTarget, aby obsługiwać obserwowanie treści. (Iec1a9) - Usuń wycofane modyfikatory, które można przenosić. Zamiast tego użyj nowego modyfikatora movable, który akceptuje nowy parametr
MovePolicy. (Ib135d) - Usuń wycofany element
DragPolicy. Użyj w zamian zasadySubspaceModifier.movable(). (I108d4) - Wycofano bezstanowe przeciążenia
SlideriRangeSliderna rzecz ich wersji stanowych. Zmieniliśmy nazwyactiveRangeStartiactiveRangeEndwRangeSliderStatenastartValueiendValue, wycofując starsze niepromowane i eksperymentalne interfejsy API suwaka zDeprecationLevel.HIDDEN. (If8995)
Poprawki błędów
- Naprawiliśmy błąd
RotateToLookAtUser, wprowadzającposeInActivitySpace, aby zapewnić prawidłowe obliczanie pozycji we wszystkich typach podprzestrzeni, w tym tych dołączonych do kotwic lub użytkowników.Ica367b - Naprawiono błąd powodujący awarię ograniczeń, gdy Orbiter jest dołączony do dużych paneli (I8c4bf)
- Naprawiliśmy błąd w
SubspaceLayoutNode, który powodował, żeremoveAll()niepotrzebnie przydzielałArrayList. Poprawiliśmy też wydajność obliczania głębi. I34a10a - Zależność
androidx.lifecycle:lifecycle-runtimezostała zaktualizowana do wersji 2.10.0. Ta wersja jest wymagana do uruchamiania kontroli linta w pakiecie środowiska wykonawczego cyklu życia z AGP w wersji 9.5.0-alpha04 lub nowszej. (I99bfd, b/556807521) - Ulepszono kdocs związane z
AudioOutputProvider, aby podkreślić, że nie należy go używać ponownie z wieloma instancjamiExoPlayer(I6b18e). - Poprawiono drobne błędy ortograficzne i gramatyczne w kdoc (Id3ba6).
Znane problemy
- Ta wersja
androidx.xr.composejest zależna odandroidx.xr.scenecore:1.0.0-rc01, w której występuje znany wyciek pamięci. W konfiguracji kompilacji możesz wyraźnie zastąpić zależnośćSceneCorewersją1.0.0, która zawiera poprawkę dotyczącą wycieku pamięci.
Wersja 1.0.0-beta01
23 września 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-beta01 i androidx.xr.compose:compose-testing:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto wycofaną funkcję
DragPolicy. Użyj w zamian zasadySubspaceModifier.movable(). (I108d4) - Usunięto wycofany element
ResizePolicyi jego zastosowania wSpatialPaneliSpatialExternalSurface. Usuń wycofaną funkcjęSubspaceModifier.resizable. Zamiast tego użyj nowegoSubspaceModifier.resizablez nowymResizePolicy. (I59e6b) - Dodano parametr
isPitchUpdateEnabled, aby umożliwić niezależne włączanie i wyłączanie śledzenia wysokości dźwięku. (Ie9e86) - Usunięto dopuszczalność wartości null dla
pitchLimitsi zmieniono nazwęPitchLimits.UNCONSTRAINEDnaPitchLimits.FullRange. (I0154f) ExposedDropdownMenujest teraz funkcją rozszerzenia wExposedDropdownMenuBoxScope, a nie funkcją członkowską. Może być konieczne zaktualizowanie kodu za pomocą nowego importu. (Ie8a65)- Usunięto wycofaną klasę
SurfaceProtection. Użyj w zamian zasadySpatialExternalSurfaceProtection. (Iab2c6) - Funkcja Orbiter, która przyjmuje
OrbiterPoseProvider, została wycofana na rzecz funkcji, która używaSpatialAlignment. (I4d12b) SpatialActivityPanelwymaga terazSpatialActivityPanelController(utworzonego za pomocąrememberSpatialActivityPanelController) do uruchamiania i zarządzania umieszczonymi aktywnościami. (Id25c6)- Usunięto parametr
upDirectionz funkcjirotateToLookAtUseri dodano parametry ograniczeń obrotu (isYawUpdateEnabledipitchLimits). (I1370a)
Poprawki błędów
- Naprawiono różne problemy z
InteractionPolicy. Awaria występowała, gdy zdarzenie wejściowe miało miejsce w momencie, gdy element Composable lub podrzędny (np. Orbiter) inicjował sekwencję usuwania. Rozwiązaliśmy też problem, który powodował, że element podrzędny otrzymywał zdarzenia najechania kursorem. (Ifc477) - Zmniejszono rozmiar panelu w
RotateToLookAtUserActivity, aby zapobiec przycinaniu na urządzeniach z mniejszym polem widzenia. (I8d672)
Znane problemy
- Występuje problem z panelami Compose XR, w przypadku których utworzenie wielu paneli w jednej aktywności może spowodować uszkodzenie wyświetlanych treści, nawet po zniszczeniu paneli.
Wersja 1.0.0-alpha17
12 sierpnia 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha17 i androidx.xr.compose:compose-testing:1.0.0-alpha17 Wersja 1.0.0-alpha17 zawiera te zmiany.
Zmiany w interfejsie API
- Usuń klasę wartości
Meter, ponieważ wScenecorezostała ona zastąpiona przezvirtualPixelDensity. (I690ee) - Interfejs API
SpatialGltfModeljest teraz eksperymentalny i aby go używać, musisz wyrazić na to zgodę. (I4557e) - Umożliwienie ustawienia wartości null dla właściwości
system, która pozwala na zmianę rozmiaru (Ib0093) - Udostępniono
DensitywSubspaceSemanticsInfodo testowania. (I2e826) - Zmień nazwę opcji domyślnej
ResizePolicynasystemi dodaj nową opcjęDefaultbez parametrów (Ic8b16) - Oznacz
FollowTargetjako eksperymentalne. Cały interfejs APIFollowingSubspacejest teraz eksperymentalny. (Id4ee3) - Usunięcie interfejsów API
GltfAnimation(Ic2894) - Zmieniono nazwę metody
MovePolicy.default()z parametrami naMovePolicy.system(). Wprowadziliśmy właściwośćval MovePolicy.Default, która reprezentuje standardowe domyślne zachowanie ruchu. (Iedcc9) - Rozszerzenie wymagań dotyczących akceptacji na
ExperimentalMoveAnchorPolicynaPlaneSemanticiPlaneOrientation(Ief927) - Usuń
resetMinsz witrynyVolumeConstraints.offset(Ib2f2f) - Usunięto wycofaną funkcję
SceneCoreEntitySizeAdapter. (Ib6722) - Usunięto wycofane przeciążenie
SubspacezallowUnboundedSubspace. (I8e97f) - Usunięto wycofane przeciążenie modyfikatora semantyki. (I4ac10)
Poprawki błędów
- Naprawiliśmy błąd, który powodował, że elementy podrzędne
Composablez dołączonymInteractionPolicywywoływały zdarzenia wejściowe (Icdba6).
Wersja 1.0.0-alpha16
15 lipca 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha16 i androidx.xr.compose:compose-testing:1.0.0-alpha16 Wersja 1.0.0-alpha16 zawiera te zmiany.
Zmiany w interfejsie API
- Usuwanie interfejsów API
ComponentOverride(I820c4) - Interfejsy API
GltfAnimationiSpatialGltfModelAnimationzostały oznaczone jako eksperymentalne. Niektóre właściwości zostały przekształcone w metody pobierające. (I8d689, b/524771027) - Naprawiliśmy działanie ogólnej gęstości, ustawiając stałą konwersję między metrami a pikselami. Wycofano Meter.kt. Zamiast tego można teraz używać
Session.scene.virtualPixelDensity. (I122ff, b/430097855, b/474168798) - Zaktualizowano modyfikator zmiany rozmiaru, aby używać
ResizePolicyzamiast 2 modyfikatorów (I7fb0f, b/496257436, b/519672992) - Dodano parametr tolerance:
Dp = Dp(0.5f)do wszystkich publicznych asercji równości wymiarów i pozycji reprezentacji zmiennoprzecinkowej wSubspaceAssertions.kt. Domyślne działanie tolerancji (0.5.dp) jest w pełni udokumentowane. (I266cb, b/521491915) - Dodano przeciążenie elementu movable z parametrem
movePolicyi wycofanotransformingMovableorazmovable(Ic88c1, b/481781189) - Dodano nowe nieinteraktywne warianty standardowego elementu listy i elementu listy podzielonej na segmenty, które są zgodne ze specyfikacjami Material Expressive. Wersja bez ekspresji została wycofana. (Ide4de, b/491994186)
- W przypadku Subspace parametr
allowUnboundedSubspacezostał wycofany i ukryty. Nieograniczone zachowanie można teraz uzyskać, używającSubspaceModifier.requiredSizeIn(maxWidth=Dp.Infinity,maxHeight=Dp.Infinity,maxDepth=Dp.Infinity) w modyfikatorze Subspace. ParametrallowUnboundedSubspacezostał usunięty z funkcjiFollowingSubspace. (Ia72ae, b/433624021) - Przekonwertowano
Session.createna funkcję zawieszenia. (I5d27f) - Dodano
SubspaceModifier.spatializedAudioOutput, co umożliwia odtwarzanie dźwięku przestrzennego przezExoPlayerlubSoundEffectPlayer(I46697, b/489421980, b/497867019) - Zaktualizowano
ComponentActivity.requestHomeSpace()irequestFullSpace(), aby zwracałySpaceRequestResultna potrzeby weryfikacji stanu. (If1672) - thought
Zaktualizowano
AnchorEntity, aby wywoływaćAnchorSpace(Ifa95e, b/513619219) - Metoda
fromResourcebez ograniczeń zSpatialGltfModelSource(I1f5a1, b/503047416) - Elementy
SubspaceSemanticsMatchersą publiczne: właściwośćdescription, metody fabryczne obiektu towarzyszącego (expectValue,keyIsDefined,keyNotDefined), funkcje składowe (matches,matchesAny) i operatory (and,or,not). (I972a4, b/460427288) - Zaktualizowano
SubspaceModifier.semantics,SubspaceModifier.testTag,SubspaceSemanticsInfo,SubspaceSemanticsModifierNode, aby używać wybranych typów semantyki przestrzennej. (I80dea, b/460427288) - Zmieniliśmy nazwę interfejsu
positionnaalignwSpatialAlignmenti usunęliśmy poszczególne metody przesunięcia kierunkowego na rzecz ujednoliconego interfejsu APIalign. (I9bdb2, b/479805937) - Usunięto wycofane interfejsy API trybu przestrzeni z
SpatialConfiguration. (I1ef5c, b/458712461) - Wprowadzono:
SubspaceSemanticsConfiguration. To jest konfiguracja właściwości semantycznych węzła przestrzennego. Ta klasa bezpiecznie udostępnia metody zapytań dotyczące semantyki 3D bez ujawniania podstawowych funkcji semantyki 2D konsumentom zewnętrznym. (Id025e, b/460427288) - Wprowadziliśmy
SubspaceSemanticsPropertyReceiver: specjalny wrapper, który ogranicza właściwości kontenera układu 3D do prawidłowych pól (początkowotestTagicontentDescription). (I5cf5c, b/460427288)
Poprawki błędów
- Zaktualizowano modyfikator semantyczny
hasContentDescription, aby domyślnie dopasowywał podłańcuchy. (I08214) - Dodano ograniczony element
FollowBehavior.ExponentialDecay(), który zapewnia płynne podążanie za obiektem zgodnie z zasadami fizyki. (I7449c, b/485639909, b/500493335)
Będzie to miało wpływ na większość interfejsów API. W szczególności LocalSession CompositionLocal i wszystkie CompositionLocals zależne od LocalSession (np. LocalSpatialConfiguration, LocalSpatialCapabilities itp.) będą teraz rozpoznawane jako null lub jego wersje inne niż XR przed zainicjowaniem Session.
Gdy Session będzie dostępny, zostanie wywołana rekompozycja z prawidłowym stanem. (I0cfa4, b/514712835, b/514712835)
- Uściśliliśmy dokumentację dotyczącą
ComponentActivity.requestHomeSpaceiComponentActivity.requestFullSpacew odniesieniu do zawieszenia, anulowania i równoczesności. Zaktualizowano testy, aby zweryfikować propagacjęCancellationException. (I22f75, b/493289528)
Wersja 1.0.0-alpha15
17 czerwca 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha15 i androidx.xr.compose:compose-testing:1.0.0-alpha15 Wersja 1.0.0-alpha15 zawiera te zmiany.
Zmiany w interfejsie API
- Wycofano
ResizePolicyi stary modyfikator zmiany rozmiaru, zastępując je nowym przeciążeniemSubspaceModifier.resizableiSubspaceModifier.transformingResizable. (I9e4bc) - Zaktualizowaliśmy interfejsy API
SpatialGltfModel: dodaliśmy obsługę wczytywania modeli z zasobów za pomocąSpatialGltfModelSource.fromResource. Zmieniliśmy nazwę szybkości naplaybackSpeedwSpatialGltfModelAnimationi dodaliśmy metodę resume().SpatialGltfModelStatus.Loaded i Loading są teraz obiektami. (I523de) - Oznaczono
rotateToLookAtUserjako eksperymentalny interfejs API. (I86c16) - Zmienna chroniona
targetCurrentPosezostała przeniesiona i zmieniona na zmienną lokalnącurrentTargetPoseMeter. (Ia557c) - Zaktualizowano kdocs
SpatialPaneliSpatialExternalSurface, aby uwzględnić miejsce renderowania obiektu w rozmiarze układu (I72104). - Logika wczytywania
SpatialGltfModelzostała umieszczona wSpatialGltfModelStatei wyjaśniono działanie w przypadku niepowodzenia. (Ibe98b) - Clarified
depthinSubspaceModifer.sizekdocs (I0f84f)
Wersja 1.0.0-alpha14
19 maja 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha14 i androidx.xr.compose:compose-testing:1.0.0-alpha14 Wersja 1.0.0-alpha14 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Wprowadziliśmy
transformingMovabledo domyślnego ruchu 3D obsługiwanego przez system oraz nowe przeciążenie dlamovabledo obsługi niestandardowych zachowań ruchu. (I50960) - Pole „
SpatialGltfModel.fromData()” zostało usunięte. (I4d083) - Dodaliśmy nowy interfejs węzła modyfikatora
SubspaceMeasuredSizeAwareModifierNode, który udostępnia wywołanie zwrotneonRemeasuredpo przejściu pomiaru.SubspaceLayoutAwareModifierNoderozszerza teraz ten nowy interfejs. ModyfikatoronSizeChangedzostał zaktualizowany, aby używaćonRemeasured, co zapewnia, że wywołanie zwrotne jest wywoływane zaraz po pomiarze, a nie po umieszczeniu. (Iafbae) - Zaktualizowano
InteractionPolicydoInterface(I0ff30) - Zaktualizowano Compose
compileSdkdo interfejsu API 37. Oznacza to, że w przypadku korzystania z Compose wymagana jest wersja AGP 9.2.0 lub nowsza. (Id45cd) - Zaktualizowano
Sizeartykułów (Iefa9a)
Wersja 1.0.0-alpha13
6 maja 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha13 i androidx.xr.compose:compose-testing:1.0.0-alpha13 Wersja 1.0.0-alpha13 zawiera te zmiany.
Zmiany w interfejsie API
- Interfejs Orbiter API oczekuje na dodatkowe zmiany. Zalecamy wyłączenie powiadomień o wycofaniu Orbiterów i śledzenie zmian w Orbiterach w nadchodzących wersjach.
- Użytkownicy, którzy używają
SceneCoreEntitydo renderowania plików glTF, powinni upewnić się, że przekazująsession.scene.activitySpacedo parametruparentwywołaniaGltfModel.create, aby zapewnić renderowanie plików glTF. - Dodajemy interfejs API
SpatialGltfModel, aby umożliwić deweloperom dodawanie plików Gltf do aplikacji Compose for XR. Deweloperzy mogą też wysyłać zapytania o animacje i węzły w modelach Gltf. (I8b542, b/495422586) - Zmieniono
SceneCoreEntitySizeAdapterz klasy na interfejs (I5a784, b/475292310). - Zmieniono nazwę
SurfaceProtectionnaSpatialExternalSurfaceProtection. ZaktualizowanoSpatialExternalSurfacekdocs (Ifad0a, b/485231082) - Wycofanie
currentWindowAdaptiveInfoi wprowadzenie wersji 2 (I40ecf, b/424442112) - Modyfikator
resizablejest teraz publiczny i można go stosować do grup (np.SpatialRow). (I2bcf6, b/348483527, b/489753178, b/479530787) - Modyfikator
movablejest teraz publiczny. Ten modyfikator działa obecnie dobrze w przypadkuSpatialPanelsiSpatialExternalSurface, ale docelowo ma być obsługiwany we wszystkichSubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063) SpatialEnterTransitioniSpatialExitTransitionoznaczone jako@Immutable(If1710, b/487757837)- Interfejs API
SpatialGltfModeljest oznaczony jako ograniczony w tej wersji, ponieważ wymaga dodatkowych testów. (Ibf003, b/466090694) - Zmieniono nazwę
DeviceTrackingMode.LAST_KNOWNnaSPATIAL_LAST_KNOWN(z wycofaną opcją zastępczą), dodanoINERTIAL_LAST_KNOWNdo śledzenia 3DoF i dodanoTRACKING_DEGRADEDdoTrackingState. (Ie661c, b/445466590) - Usunięcie wycofanej funkcji
SpatialLayoutSpacer(I7b36c) - Usunięcie wycofanego interfejsu API dopełnienia (If1886)
- Dodano
floatRangedo wartości odchylenia. Usunięto wartość domyślną dlaLayoutDirection(I9d74e)
Poprawki błędów
- Dodaliśmy przykładowe kody i dokumentację KDoc dla
SpatialColumn,SpatialRowiSpatialCurvedRow. (Iaf54f, b/495777633)
Wersja 1.0.0-alpha12
25 marca 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha12 i androidx.xr.compose:compose-testing:1.0.0-alpha12 Wersja 1.0.0-alpha12 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaj interfejsy API
SpatialGltfModeliSpatialGltfModelAnimation, aby renderować pliki glTF i kontrolować animacje. ZmienionoSpatialGltfModelStatenaAutoCloseable. Teraz trzeba zamknąć, aby zwolnić zasoby. (I11fde, b/466065486, b/481379924). Jednak interfejs APISpatialGltfModeljest oznaczony jako ograniczony w tej wersji, ponieważ wymaga dodatkowych testów. (Ibf003, b/466090694) - Dodano wycofane puste przeciążenie dla
SubspaceModifier.rotate. (Idceb6) - Zmieniono nazwę funkcji
SpatialSmoothFeatheringEffectnaspatialSmoothFeatheringEffecti przeniesiono ją do modułu rysowania. Zaktualizowano domyślną wartość wtapianiaSpatialExternalSurfacena null, co naśladuje starą funkcję ZeroFeatheringEffect. (I5fdaa, b/460426800) - Kontakt
onPointSourceParamsAvailablezostał usunięty. W najbliższej przyszłości udostępnimy inny interfejs API do przestrzennego przetwarzania dźwięku. (I86507, b/458513439) - Dodano zachowanie RTL dla modyfikatorów przesunięcia podprzestrzeni. Dodano też
absoluteOffset, aby ignorować kierunek układu. (I30e4b, b/474409165)
Wersja 1.0.0-alpha11
25 lutego 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha11 i androidx.xr.compose:compose-testing:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.
Nowe funkcje
- Dodaję parametr
SuperSamplingdoSpatialExternalSurfaces(Icd4d1)
Znane problemy
- Problem z
SurfaceEntityw SceneCore może powodować awarie aplikacji podczas tworzenia instancjiSpatialExternalSurface. Ten problem został rozwiązany w wersjachandroidx.xr.scenecore:scenecore-*:1.0.0-alpha13iandroidx.xr.compose:compose:1.0.0-alpha12oraz w nowszych wersjach. Aplikacje, których dotyczy problem, powinny zostać zaktualizowane do najnowszych wersji.
Zmiany w interfejsie API
- Zmiany dopełnienia modyfikatora podprzestrzeni w celu uwzględnienia kierunku układu. (I53e25)
- Migracja
SpatialCapabilitieszostała zakończona i nie można jej przedłużyć. (I07aef) - Interfejsy API
SpatialRowiSpatialColumn, które akceptują ogólny parametrSpatialAlignment, zostały wycofane. Zamiast nich używaj interfejsów API, które akceptują parametryverticalAlignmentlubhorizontalAlignment, odpowiednio dlaSpatialRowiSpatialColumn. (Iec390) - Połączenie przeciążonych interfejsów API funkcji
SubspaceLayout(Idd30a) - Zmieniono nazwę
SubspaceModifier.lookAtUsernarotateToLookAtUser, a parametruupnaupDirection. (Icafb8) - Ustawianie
SpatialRowjako funkcji wbudowanej (Ia2f20) - Ustawianie
SpatialColumnjako funkcji wbudowanej (I681be) - Usunięto interfejs API billboardu (Ib76cd)
Wersja 1.0.0-alpha10
28 stycznia 2026 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha10 i androidx.xr.compose:compose-testing:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usuwanie wycofanego interfejsu API –
ApplicationSubspace(Ia6596, b/468345186) - Zaktualizowano
SpatialShapedo interfejsu zapieczętowanego (I7e3f5, b/460426800) - Usuwanie wycofanych interfejsów API w
SpatialAlignment. (Ib0b61, b/468011887) - Wycofujemy
SpatialLayoutSpaceri wprowadzamySpatialSpacer. (I2ebf3, b/466071383) - thought
Zaktualizowaliśmy interfejs API
UserSubspace, aby zastąpić termin „lazy locking” terminem „soft locking”. (I9ded1, b/464035984)
Wersja 1.0.0-alpha09
3 grudnia 2025 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha09 i androidx.xr.compose:compose-testing:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodanie modyfikatorów
LookAtUseri Billboard, dzięki którym treści są zawsze skierowane w stronę użytkownika. (I49b99) - Dodaje możliwość ustawienia
InteractionPolicynaSpatialExternalSurfacesiSpatialPanels, co pozwala na wykrywanie kliknięć i innych zdarzeń wejściowych 3D. (Iae155) - Dodano przeciążenie modyfikatora rozmiaru i
requiredSizez szerokością, wysokością i głębokością jako wartościami Dp. (I92f79) - Interfejs
ParentLayoutParamsModifierrozszerza teraz interfejsDelegatableSubspaceNode. (I1a6d4) - Interfejs
ApplicationSubspacezostał wycofany na rzecz interfejsu Subspace API.- Zmieniono działanie interfejsu Subspace API, aby udostępniał tylko podprzestrzeń obejmującą całą aplikację w zalecanej pozycji i skali.
- Wprowadzono interfejs API
PlanarEmbeddedSubspace, który umożliwia osadzanie podprzestrzeni w kontekstach 2D. (Id3343)
- Dodano flagę
shouldAutoInvalidatedo interfejsu APISubspaceModifier.Node. (I93902) - Dodano
required(Size|Width|Depth|Height)w interfejsach API, które umożliwiają deweloperom ograniczenie rozmiaru@SubspaceComposabledo określonego zakresu, ignorując ograniczenia pomiaru przychodzące z elementu nadrzędnego. (Ifaa78) - Dodaliśmy
SubspaceModifier.onSizeChanged, który zapewnia proste, ukierunkowane wywołanie zwrotne, dzięki któremu deweloperzy mogą reagować na zmiany rozmiaru@SubspaceComposable. (I994f9) - Usunięto interfejs Volume API. Zamiast interfejsu Volume API należy używać interfejsu
SceneCoreEntityAPI. (I4162b) - Podziel
SubspaceLayoutModifierNode.requestRelayoutnainvalidateMeasurement/invalidatePlacement. (I14805) - Dodaliśmy interfejs API
SpatialGltfModel, który umożliwia deweloperom renderowanie glTF w Compose. (Icc91f) - Wprowadziliśmy interfejs API
SpatialGltfModeldo łatwego renderowania plików glTF (Iade67).
Poprawki błędów
- Naprawiliśmy błąd układu w aplikacji
SceneCoreEntity. Teraz powinna prawidłowo uwzględniać ograniczenia. (I11bb8) - Obniżono wersję modułów jxr-compose do
Compile sdk = 34(I2d5db)
Wersja 1.0.0-alpha08
22 października 2025 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha08 i androidx.xr.compose:compose-testing:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniono
ResizePolicy, aby akceptowaćonResizeStart,onResizeUpdateionResizeEnd. (I7e21f)
Poprawki błędów
- Zapobieganie awarii podczas niszczenia aktywności z podprzestrzenią. (I595a1)
Wersja 1.0.0-alpha07
24 września 2025 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha07 i androidx.xr.compose:compose-testing:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zmiany.
Zmiany w interfejsie API
- Ulepszono dokumentację KDoc dla
SpatialMainPanel. (I27b70, b/444467891) - Wprowadziliśmy
SpatialArrangementdo rozmieszczania elementów podrzędnych wzdłuż osi głównej w układach 3D, takich jakSpatialRowiSpatialColumn. Ten nowy interfejs API udostępnia znane opcje rozmieszczenia z 2D Compose, w tymStart,End,Center,SpaceBetween,SpaceAroundiSpaceEvenly, z pełną obsługą układów od lewej do prawej i od prawej do lewej. (I7db38, b/436289959) - Dodano interfejs podstawowy dla
SubspaceModifier.Node, aby zwiększyć bezpieczeństwo wpisywania i użyteczność interfejsów rozszerzeń, takich jak:CompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(wewnętrzny) (Iede00, b/440599394, b/440599394)
- Cofnięcie ograniczenia
SpatialExternalSurface(I33315, b/439646773) - Wprowadź
SubspaceModifierdo funkcji kompozycyjnych Subspace i zastąp parametr ograniczeńSubspaceModifierparametremSubspaceModifierszwiązanym z rozmiarem. Jeśli zasadaallowUnboundedSubspacema wartość Prawda, podprzestrzenie mogą nadal mieć nieograniczone ograniczenia. (Ib06e6, b/433331675) - Wycofujemy funkcje przesuwania i zmieniania rozmiaru
SubspaceModifiers, ponieważDragPolicy()iResizePolicy()są teraz częścią interfejsu APISpatialPaneliSpatialExternalSurface(I397bf, b/437924639). - Dodaliśmy obsługę
LayoutDirectionw układach przestrzennych. Funkcja kompozycyjna używającaSpatialAlignmentbędzie teraz prawidłowo pozycjonować elementy zarówno w kontekście LTR, jak i RTL. (I964bb, b/436300273) - Dodaj parametry Resizable i Movable do interfejsów API
Panel, aby mieć pewność, że te zachowania można stosować tylko do obsługiwanych kontenerów. (Id491c) - Dodano właściwości
sizeIn,widthIn,heightIn,depthInSubspaceModifiers, które umożliwiają ustawianie dokładnych minimalnych i maksymalnych ograniczeń szerokości, wysokości i głębokości. (I1af09, b/433330761)
Wersja 1.0.0-alpha06
13 sierpnia 2025 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha06 i androidx.xr.compose:compose-testing:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zmiany.
Poprawki błędów
- Utwórz ponownie
ComposeXrOwnerLocals, gdy właściciel cyklu życia zostanie usunięty. (9123ce1)
Wersja 1.0.0-alpha05
30 lipca 2025 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha05 i androidx.xr.compose:compose-testing:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Klasa adnotacji
SubspaceComposablezostała ustawiona jako publiczna. (Ic2a34, b/399432430) - 2 nowe elementy kompozycyjne
SpatialExternalSurfacereprezentujące sfery 180° i 360°. (I40ef2, b/391705799) - Dodano
SubspaceModifier.aspectRatio(Ide5ab, b/399729509, b/414762147) - Dodaliśmy interfejs API
SceneCoreEntity, aby poprawić współdziałanieSceneCorei Compose for XR. (I50bb3, b/423020989) - Udostępniliśmy interfejs API
GravityAlignedsubspace, aby obsługiwać funkcję unscaled AndGravityAligned(I07359)
Zmiany w interfejsie API
SpatialDialog()będzie działać zgodnie z konfiguracją naciśnięciaSpatialDialogProperties.dismissOnBack. (Ib453b, b/416797132)- Zaktualizuj
minimumPanelDimensiondo nowego domyślnego rozmiaru wymiaruDimensions(0.1f, 0.1f, 0.1f), ponieważ jest on podany w metrach. (Ib852a) - Podprzestrzenie i orbitery będą teraz zachowywać swój stan wewnętrzny w przestrzeni głównej i gdy aplikacja działa w tle. W trybie obszaru domowego Subspace nadal będzie konfigurować scenę w ramach przygotowań do przełączenia na tryb pełnej przestrzeni. (I40317, b/416037751)
SpatialDialogsbędzie teraz zachowywać swój stan, gdy aplikacja będzie działać w tle. (I6aa56)ApplicationSubspacebędzie teraz dziedziczyć zalecaną skalę i pozycję z systemu. (I4565f, b/418834194)- Dodaliśmy lepszy komunikat o błędzie i wywołujemy błąd wcześniej, gdy
SubspaceComposablejest używany w kontekście innym niżSubspaceComposable. (Iee2ae, b/416484684) - Zmieniamy
ExperimentalSubspaceVolumeApiz ostrzeżenia na błąd, ponieważ ostrzeżenia są często ignorowane w przypadku nieprawidłowego użycia interfejsów API funkcji kompozycyjnych. (I427aa, b/424864286) - Podprzestrzeń i
ApplicationSubspacesą teraz ograniczone przezrecommendedContentBoxInFullSpace. Wcześniej było ograniczone przez pole widzenia urządzeniaSpatialUser. (I41015, b/423074142) - Zaktualizowano
SpatialElevation, aby używać minimalnego rozmiaru i nie używać już rozmiaru zakodowanego na stałe (I2dbe6, b/427785338) - Zaktualizuj sposób, w jaki wyświetlamy
SpatialAcitivityPanel, aby aktualizować go po zmianie kluczowej zmiennej. (I0f64d, b/427999029) - Usuń
VolumeConstraints.Unboundedi ustaw domyślne wartości ograniczeń na odpowiednik. (Ie24ec, b/407938414) SpatialFeatheringSizenie jest już publiczny (I1c15b, b/399432430)- Zmieniono nazwę XR
PlaceablenaSubspacePlaceable, aby odróżnić ją odPlaceablew Compose. (I74874) - Usuwam ustawienia Orbiter i dodaję
shouldRenderInNonSpatialjako nowy parametr. Dodatkowo usuwamy klasęEdgeOffseti dodajemyorbiterOffsetTypejako nowy parametr, aby skonsolidować funkcjeOrbiter(). Zmieniliśmy też nazwęOrbiterEdgenaContentEdge. (Iebf3d) - Zmieniono nazwę
MeasurablenaSubspaceMeasurable, aby odróżnić ten typ od typuMeasurablew Compose. (I9726c) - Zmień nazwę
MeasureResultnaSubspaceMeasureResult(I9f34d) - Usunięto interfejs API
setSubspaceContentna rzecz interfejsusetContentw Compose z funkcją kompozycyjnąSubspace. (Ifff4c, b/421427391, b/421427391) - Nazwa
MeasurePolicyzostała zmieniona naSubspaceMeasurePolicy. (I37a9b, b/422553904) - Zmień
SubspaceSemanticsInfow interfejs zapieczętowany, ponieważ bez wartości domyślnych nie będziemy mogli dodawać elementów. (I372f9, b/423704068) - Zaktualizowano dokumentację
SpatialExternalSurface, zmieniono nazwęContentSecurityLevelnaSurfaceProtection(I3c460, b/420982808) - Dodaliśmy przeciążony konstruktor modyfikatora movable, który umożliwia zakotwiczenie. (Ic0c70)
- Dodaliśmy więcej opcji pozycjonowania etykietek, dzięki czemu deweloperzy mogą teraz kontrolować, czy etykietka jest umieszczona nad, pod, po lewej czy po prawej stronie kotwicy. Dodaj interfejs API, który przyjmuje kształt kursorów, aby można było udostępniać więcej niestandardowych kształtów. (Ie513c, b/374766087, b/418854637)
- Usunięto użytkownika
CoreEntityz roliPublishedApi(Ifee05)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że podczas renderowania
SpatialDialogmigał. (Ife73c, b/401619909) - Rozwiązaliśmy problem, który uniemożliwiał
SpatialDialogprzyciemnienie panelu aktywności. (I8ca6c, b/367442109) - Naprawiono błąd, który powodował, że okno XR nie wyświetlało niektórych treści (I17cd5, b/418062437).
- Rozwiązaliśmy problem, który powodował, że kliknięcie wewnątrz treści powodowało zamknięcie
SpatialPopup. (If262c, b/417245722) - Rozwiązaliśmy problem, który powodował, że podczas łączenia
resizable().movable()rozmiar panelu przestrzennego nie był prawidłowo zmieniany na nowy. (I02ee3, b/422264230) - Naprawiliśmy błąd, który powodował, że element
topBarnakładał się na menu wSpatialComposeVideoPlayer(Id33bc, b/427168167) - Naprawiono błąd, który powodował, że promień narożnika nie był renderowany (I975fe, b/428261830).
Wersja 1.0.0-alpha04
7 maja 2025 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha04 i androidx.xr.compose:compose-testing:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Dodano interfejs
CompositionLocalConsumerSubspaceModifierNode, aby umożliwić niestandardowym typomSubspaceModifierdostęp do wartości lokalnych kompozycji. - Dodaliśmy nowy interfejs API
SpatialPanel, który jest zgodny ze stylem implementacjiAndroidViewi zastępuje poprzedni interfejsViewBased SpatialPanel. - Dodano obiekt towarzyszący
VolumeConstraints.Unbounded, który reprezentuje nieograniczone ograniczenia. - Dodano
SubspaceModifier.onPointSourceParams, aby umożliwić korzystanie ze źródła dźwięku przestrzennego. - Dodano publiczny element
ApplicationSubspace, który oferuje opcjonalny elementVolumeConstraintsdo definiowania obszaru 3D, w którym aplikacja może renderować treści przestrzenne. Domyślnie, jeśli nie określono żadnych ograniczeń, podprzestrzeń będzie ograniczona przez bieżące pole widzenia elementuSpatialUserpod względem szerokości i wysokości. Użytkownicy mogą podać ograniczenia, które zostaną zastosowane, jeśli nie będzie można określić pola widzenia. W przeciwnym razie używane są domyślne wartości szerokości i wysokości pola widzenia. - Dodaliśmy właściwość
SpatialExternalSurface, która może służyć do renderowania treści stereoskopowych.SpatialExternalSurfacemożna dostosować za pomocą modyfikatorów (z wyjątkiem alfa) i efektu wtapiania krawędzi. - Dodaliśmy nowy modyfikator podprzestrzeni
pointerHoverIcon, który umożliwia użytkownikom ustawianie ikony wskaźnika przestrzennego.
Zmiany w interfejsie API
- Usunięto ograniczenie
RequiresApi(34)we wszystkich pakietach Jetpack XR. To ograniczenie było zbędne, ponieważ Jetpack XR jest obecnie dostępny tylko na urządzeniach z interfejsem API na poziomie 34 lub wyższym. (Iae0f8) - Projekty opublikowane z Kotlinem 2.0 wymagają do użycia wtyczki KGP w wersji 2.0.0 lub nowszej. (Idb6b5)
- Obsługa przycisku Wstecz będzie teraz działać na panelach przestrzennych bez umieszczonych aktywności. Aby obsługa przycisku Wstecz działała, musisz określić
android:enableOnBackInvokedCallback="true"w pliku manifestu Androida. - Obsługa przycisku Wstecz będzie teraz działać w oknach przestrzennych. Aby obsługa przycisku Wstecz działała, musisz określić
android:enableOnBackInvokedCallback="true"w pliku manifestu Androida. - Komponenty
SpatialPaneloparte na Compose i widoku mogą teraz dostosowywać swój rozmiar na podstawie zawartości. - Deweloperzy mogą teraz ustawiać własne wartości
SpatialElevationLeveli nie są ograniczeni do wstępnie zdefiniowanych poziomów. - Poziom wysokości orbitera można teraz dostosować za pomocą parametru
elevation. - Podprzestrzeń może być teraz domyślnie ograniczona przez pole widzenia
SpatialUserpod względem szerokości i wysokości. Jeśli nie można określić pola widzenia, używane są domyślne wartości szerokości i wysokości pola widzenia. - Dodaliśmy nowe wywołania zwrotne
onMoveStartionMoveEnddo modyfikatoraMovable. Wywołania zwrotneonMoveStartionMoveEndsą wywoływane, gdy użytkownik zaczyna i kończy przenoszenie elementu kompozycyjnego podprzestrzeni za pomocą modyfikatora movable. - Parametr
namezostał usunięty z interfejsów API do danych przestrzennych, takich jakSpatialRowiSpatialPanel. Do debugowania drzew tworzenia przestrzennego używajSubspaceModifier.testTag. - Usunięto nieobsługiwane przeciążenie metody
SpatialPopup, które zawiera tylko parametryspatialElevationLevelicontent. Użyj interfejsu, który obsługujeonDimissRequest. - Usunięto wywołanie zwrotne
onPoseChangez modyfikatora Movable. Użyj w zamian zasadyonMove. - Jeśli efekty
SubspaceModifierssą odłączone lub są obecnie odłączane, nie będą już stosowane. - Dotychczasowy interfejs API
SpatialRowzostał podzielony naSpatialRowiSpatialCurvedRow. Jeśli wcześniej używano parametrucurveRadiuswSpatialRow, użyj teraz parametruSpatialCurvedRow, który działa tak samo. MainPaneliActivityPanelnie mają już pasków tytułu, gdy są uruchamiane na podobnie aktualnym obrazie systemu.- Modyfikatory przezroczystości i skali można teraz nakładać na siebie, a ich wartości będą mnożone, aby uzyskać ostateczną wartość przezroczystości lub skali.
- Wywołanie zwrotne
onPoseChangez modyfikatora Movable zostało zoptymalizowane pod kątem płynniejszego ruchu pozy. - Modyfikatory umożliwiające przenoszenie i zmianę rozmiaru będą teraz wykonywać wywołania zwrotne w głównym wątku, aby zmiany stanu powodowały ponowne komponowanie.
- Dodano obserwację stanu do faz układu i pomiaru, aby zmiany stanu w
SubspaceLayoutpowodowały zmianę układu. - Zoptymalizowaliśmy aktualizacje łańcucha modyfikatorów, aby lepiej wykorzystywać istniejące modyfikatory.
Poprawki błędów
- Zatrzymano przyciemnianie, gdy wyświetlany jest element
SpatialDialog. (Ic4594) - Żądania zmiany układu wysyłane, gdy węzły modyfikatora są odłączone, będą teraz ignorowane.
- Usunięto fazy zmiany układu wywoływane przez modyfikatory Movable i Resizable.
- Naprawiliśmy błąd powodujący awarię w funkcji kompozycyjnej
MainPanel(), który występował, gdy którykolwiek wymiar był ustawiony na 0, bezpośrednio lub podczas obliczania układu, np. obliczaniaSpatialRow/SpatialColumn. Zamiast tego panel będzie teraz ukryty. Pamiętaj, że ta poprawka dotyczy konkretnie awarii podczas fazy układu. Zmiana rozmiaru panelu na zero w wyniku interakcji użytkownika będzie obsługiwana osobno. Ukryty panel nie ma elementów interfejsu. - Rozwiązaliśmy problem z
maintainAspectRatioz modyfikatora zmiany rozmiaru. Format obrazu powinien zostać zachowany. - Rozwiązaliśmy problem z zagnieżdżonymi podprzestrzeniami, które były nieprawidłowo pozycjonowane w przypadku pojedynczej klatki.
- Rozwiązaliśmy problem, który powodował, że czasami nie były stosowane zaokrąglone rogi, gdy powinny być.
NestedSubspacesnie będzie już wyświetlać się przez jedną klatkę w niewłaściwym miejscu.
Wersja 1.0.0-alpha03
26 lutego 2025 r.
Wersje androidx.xr.compose:compose:1.0.0-alpha03 i androidx.xr.compose:compose-testing:1.0.0-alpha03 zostały opublikowane bez istotnych zmian od ostatniej wersji alfa. Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Wersja 1.0.0-alpha02
12 lutego 2025 r.
Publikacja androidx.xr.compose:compose:1.0.0-alpha02 i androidx.xr.compose:compose-testing:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Panel aktywności może teraz przyciemniać zawartość, gdy aktywowane jest okno przestrzenne.
- Interfejs API
Orbitermożna teraz używać w kontekstachSubspaceComposable. Będzie on dołączać elementy Orbiter do najbliższego elementu nadrzędnego Composable opartego naSubspaceLayout. - Wprowadziliśmy parametr
LayoutCoordinatesAwareModifierNode, aby umożliwić stosowanie niestandardowych modyfikatorów opartych na pozycjonowaniu. - Dodaliśmy metody cyklu życia dołączania/odłączania do
SubspaceModifier.Node. - Dodano
scaleWithDistancedo modyfikatora ruchomego. Gdy opcjascaleWithDistancejest włączona, przeniesiony element podprzestrzeni zostanie powiększony lub pomniejszony. Zachowa też skalę, którą miał przed przeniesieniem.
Zmiany w interfejsie API
- Usunięto
SessionCallbackProviderna rzeczSpatialCapabilities.
Inne zmiany
- Zmniejszono liczbę
minSDKdo 24. Wszystkie interfejsy Jetpack XR API nadal wymagają interfejsu API 34 w czasie działania. - Konstruktory
OrbiterEdgeOffset.inner,EdgeOffset.outeriEdgeOffset.overlapnie są już metodami@Composable, co pozwala na ich używanie w kontekstach, które nie są kompozycyjne. - Zaktualizuj poziomy wysokości przestrzennej, aby były zgodne z najnowszą specyfikacją UX.
- Zaimplementuj interfejs
SubspaceSemanticsInfowMeasurableLayout. - Zmieniono nazwę
SubspaceModifierElementnaSubspaceModifierNodeElement.
Poprawki błędów
- Poprawki stabilizujące kolejność
SubspaceModifier.SubspaceModifierpowinna działać bardziej niezawodnie. Modyfikatory przesunięcia, obrotu, skalowania, przesuwania i zmiany rozmiaru powinny być teraz używane w dowolnej kolejności.
Wersja 1.0.0-alpha01
12 grudnia 2024 r.
Publikacja androidx.xr.compose:compose-*1.0.0-alpha01
Funkcje w pierwszej wersji
Pierwsza wersja Jetpack Compose for XR dla deweloperów. Używaj znanych pojęć z Compose, takich jak wiersze i kolumny, aby tworzyć układy interfejsu przestrzennego w XR, niezależnie od tego, czy przenosisz istniejącą aplikację 2D do XR, czy tworzysz nową aplikację XR od podstaw. Ta biblioteka udostępnia elementy kompozycyjne podprzestrzeni i przestrzeni, takie jak panele przestrzenne i orbitery, które umożliwiają umieszczanie istniejącego interfejsu użytkownika opartego na Compose lub widokach 2D w układzie przestrzennym. Wprowadza on komponent podprzestrzeni głośności, który umożliwia umieszczanie elementów SceneCore, takich jak modele 3D, względem interfejsu. Więcej informacji znajdziesz w tym przewodniku dla programistów:
Subspace: ten element kompozycyjny można umieścić w dowolnym miejscu w hierarchii interfejsu aplikacji, co pozwala zachować układy interfejsu 2D i przestrzennego bez utraty kontekstu między plikami. Ułatwia to udostępnianie takich elementów jak istniejąca architektura aplikacji między XR a innymi formatami bez konieczności podnoszenia stanu w całym drzewie interfejsu użytkownika ani zmiany architektury aplikacji.SpatialPanel: panel przestrzenny to element kompozycyjny podprzestrzeni, który umożliwia wyświetlanie treści aplikacji – na przykład odtwarzanie filmu, wyświetlanie obrazów lub innych treści.
Orbiter: orbiter to komponent interfejsu przestrzennego. Jest on przeznaczony do dołączenia do odpowiedniego panelu przestrzennego i zawiera elementy nawigacyjne oraz działania kontekstowe związane z tym panelem. Jeśli na przykład utworzysz panel przestrzenny do wyświetlania treści wideo, możesz dodać elementy sterujące odtwarzaniem wideo w orbiterze.
Objętość: umieszczaj elementy SceneCore, takie jak modele 3D, względem interfejsu.
Układ przestrzenny: Możesz utworzyć wiele paneli przestrzennych i umieścić je w układzie przestrzennym za pomocą
SpatialRow,SpatialColumn,SpatialBoxiSpatialLayoutSpacer. UżyjSubspaceModifier, aby dostosować układ.Komponenty interfejsu przestrzennego: te elementy można ponownie wykorzystać w interfejsie 2D, a ich atrybuty przestrzenne będą widoczne tylko wtedy, gdy funkcje przestrzenne będą włączone.
SpatialDialog: panel zostanie lekko przesunięty do tyłu w osi Z, aby wyświetlić okno dialogowe.SpatialPopUp: panel zostanie nieco przesunięty do tyłu w osi Z, aby wyświetlić wyskakujące okienko.SpatialElevation: można ustawićSpatialElevationLevel, aby dodać podniesienie.
SpatialCapabilities: możliwości przestrzenne mogą się zmieniać, gdy użytkownicy wchodzą w interakcję z aplikacją lub systemem, a nawet mogą być zmieniane przez samą aplikację, np. podczas przechodzenia do przestrzeni domowej lub pełnej przestrzeni. Aby uniknąć problemów, aplikacja musi sprawdzać
LocalSpatialCapabilities.current, aby określić, które interfejsy API są obsługiwane w bieżącym środowisku.isSpatialUiEnabled: elementy interfejsu przestrzennego (np.SpatialPanel),isContent3dEnabled: obiekty 3D,isAppEnvironmentEnabled: środowisko,isPassthroughControlEnabled: czy aplikacja może kontrolować stan trybu passthrough,isSpatialAudioEnabled: dźwięk przestrzenny.
Znane problemy
- Obecnie do korzystania z Jetpack Compose for XR wymagana jest wersja minSDK 30. Aby obejść ten problem, możesz dodać do pliku manifestu wpis
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>, który umożliwi kompilowanie i uruchamianie aplikacji z minSDK 23. - Aplikacje Jetpack XR wymagają obecnie uprawnienia
android.permission.SCENE_UNDERSTANDINGw pliku AndroidManifest. - Gdy aplikacja uruchamia się bezpośrednio w trybie pełnej przestrzeni za pomocą właściwości
PROPERTY_XR_ACTIVITY_START_MODEw pliku manifestu, aktywności i aplikacje są początkowo otwierane w przestrzeni domowej, a następnie przechodzą do trybu pełnej przestrzeni. - Pliki glTF w komponentach Volume Composable mogą początkowo migotać w niewłaściwej lokalizacji.
- Użycie elementu SpatialDialog w panelu, który został znacznie przesunięty, spowoduje przesunięcie treści w niewłaściwym kierunku.