Jetpack Compose na potrzeby XR
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja alfa |
|---|---|---|---|---|
| 25 marca 2026 r. | - | – | - | 1.0.0-alpha12 |
Deklarowanie zależności
Aby dodać zależność od XR Compose, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha12" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha12" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha12") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha12") }
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 odkryjesz 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 na istniejący problem, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.0
Wersja 1.0.0-alpha12
25 marca 2026 r.
Publikacje 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 interfejs
SpatialGltfModelAPI i interfejsySpatialGltfModelAnimationAPI, aby renderować pliki glTF i sterować animacjami. ZmienionoSpatialGltfModelStatenaAutoCloseable. Aby zwolnić zasoby, należy teraz zamknąć to okno. (I11fde, b/466065486, b/481379924). InterfejsSpatialGltfModelAPI jest jednak oznaczony jako ograniczony w tej wersji do czasu przeprowadzenia dodatkowych testów. (Ibf003, b/466090694) - Dodaliśmy wycofane puste przeciążenie funkcji
SubspaceModifier.rotate. (Idceb6) - Zmieniliśmy nazwę funkcji
SpatialSmoothFeatheringEffectnaspatialSmoothFeatheringEffecti przenieśliśmy ją do modułu rysowania. Zaktualizowano domyślną wartośćSpatialExternalSurfacerozmycia do wartości null, co naśladuje starą funkcję ZeroFeatheringEffect. (I5fdaa, b/460426800) - Użytkownik
onPointSourceParamsAvailablezostał usunięty. W najbliższej przyszłości udostępnimy inny interfejs API do przestrzennego odtwarzania dźwięku. (I86507, b/458513439) - Dodano działanie od prawej do lewej w przypadku modyfikatorów podprzestrzeni przesunięcia. Dodano też
absoluteOffset, aby ignorować kierunek układu. (I30e4b, b/474409165)
Wersja 1.0.0-alpha11
25 lutego 2026 r.
Publikacje 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 zmiany.
Nowe funkcje
- Dodawanie parametru
SuperSamplingdoSpatialExternalSurfaces(Icd4d1)
Zmiany w interfejsie API
- Zmiany dopełnienia modyfikatora podprzestrzeni w celu uwzględnienia kierunku układu. (I53e25)
SpatialCapabilitiesjest teraz zamknięty i nie można go 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ą odpowiednio parametryverticalAlignmentlubhorizontalAlignmentw przypadku interfejsówSpatialRowiSpatialColumn. (Iec390) - Łączenie przeciążonych interfejsów API funkcji
SubspaceLayout(Idd30a) - Zmieniono nazwę
SubspaceModifier.lookAtUsernarotateToLookAtUser, a parametrupnaupDirection. (Icafb8) - Przekształcanie
SpatialRoww funkcję wbudowaną (Ia2f20) - Przekształcanie funkcji
SpatialColumnw funkcję wbudowaną (I681be) - Usunięto interfejs API billboardu (Ib76cd)
Wersja 1.0.0-alpha10
28 stycznia 2026 r.
Publikacje 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 zmiany.
Zmiany w interfejsie API
- Usunięcie wycofanego interfejsu API –
ApplicationSubspace(Ia6596, b/468345186) - Zaktualizowano
SpatialShapedo interfejsu zamkniętego (I7e3f5, b/460426800) - Usuwanie wycofanych interfejsów API w
SpatialAlignment. (Ib0b61, b/468011887) - Wycofujemy
SpatialLayoutSpaceri wprowadzamySpatialSpacer. (I2ebf3, b/466071383) - Zaktualizowano interfejs
UserSubspaceAPI, aby zastąpić termin „lazy locking” terminem „soft locking”. (I9ded1, b/464035984)
Wersja 1.0.0-alpha09
3 grudnia 2025 r.
Publikacje 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 zmiany.
Zmiany w interfejsie API
- Dodanie modyfikatorów
LookAtUseri Billboard, które sprawiają, że treść jest zawsze skierowana do użytkownika. (I49b99) - Dodaje możliwość ustawienia
InteractionPolicynaSpatialExternalSurfacesiSpatialPanels, co umożliwia wykrywanie kliknięć i innych zdarzeń wejściowych 3D. (Iae155) - Dodano rozmiar i przeciążenie modyfikatora
requiredSizez szerokością, wysokością i głębokością jako wartościami Dp. (I92f79) - Interfejs
ParentLayoutParamsModifierjest teraz rozszerzony oDelegatableSubspaceNode. (I1a6d4) - Interfejs
ApplicationSubspacezostał wycofany i zastąpiony interfejsem Subspace API.- Działanie interfejsu Subspace API zostało zmienione tak, aby udostępniać tylko podprzestrzeń w skali zalecanej dla całej aplikacji.
PlanarEmbeddedSubspaceAPI zostało wprowadzone, aby udostępniać osadzone podprzestrzenie 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, z pominięciem przychodzących ograniczeń pomiarowych elementu nadrzędnego. (Ifaa78) - Dodano
SubspaceModifier.onSizeChanged, który zapewnia deweloperom prosty, ukierunkowany wywołanie zwrotne, aby mogli 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) - Dodano interfejs
SpatialGltfModelAPI, który umożliwia programistom renderowanie plików glTF w kompozycji. (Icc91f) - Wprowadziliśmy
SpatialGltfModelkompozycyjny interfejs API, który ułatwia renderowanie plików glTF (Iade67).
Poprawki błędów
- Naprawiono błąd układu w
SceneCoreEntity. Powinien teraz prawidłowo uwzględniać ograniczenia. (I11bb8) - Obniż poziom modułów jxr-compose do
Compile sdk = 34(I2d5db)
Wersja 1.0.0-alpha08
22 października 2025 r.
Publikacje 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 przestrzenią podrzędną. (I595a1)
Wersja 1.0.0-alpha07
24 września 2025 r.
Publikacje 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
- Ulepszona dokumentacja KDocs dla
SpatialMainPanel. (I27b70, b/444467891) - Wprowadzono
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ą kierunków układu od lewej do prawej i od prawej do lewej. (I7db38, b/436289959) - Dodano interfejs podstawowy dla
SubspaceModifier.Node, aby zwiększyć zabezpieczenia wpisywania i użyteczność interfejsów rozszerzeń, takich jak:CompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(wewnętrzny) (Iede00, b/440599394, b/440599394)
- Usuń ograniczenia
SpatialExternalSurface(I33315, b/439646773) - Wprowadź
SubspaceModifierdo funkcji kompozycyjnych Subspace i zastąp parametr ograniczeń parametremSubspaceModifierpowiązanym z rozmiaremSubspaceModifiers. JeśliallowUnboundedSubspacema wartość Prawda, podprzestrzenie mogą nadal mieć nieograniczone ograniczenia. (Ib06e6, b/433331675) - Wycofanie ruchomych i zmiennych rozmiarów
SubspaceModifiers, ponieważDragPolicy()iResizePolicy()są teraz częścią interfejsów APISpatialPaneliSpatialExternalSurface(I397bf, b/437924639) - Dodaliśmy obsługę elementu
LayoutDirectionw układach przestrzennych. KomponentSpatialAlignmentbędzie teraz prawidłowo pozycjonować elementy w kontekście od lewej do prawej i od prawej do lewej. (I964bb, b/436300273) - Dodaj do interfejsów
PanelAPI parametry Resizable i Movable, aby mieć pewność, że te zachowania można stosować tylko w przypadku obsługiwanych kontenerów. (Id491c) - Dodano atrybuty
sizeIn,widthIn,heightIn,depthInSubspaceModifiers, które umożliwiają ustawienie 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.
Publikacje 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
- Ponownie utwórz
ComposeXrOwnerLocals, gdy właściciel cyklu życia zostanie usunięty. (9123ce1)
Wersja 1.0.0-alpha05
30 lipca 2025 r.
Publikacje 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
- Udostępniono publicznie klasę adnotacji
SubspaceComposable. (Ic2a34, b/399432430) - Dwa nowe komponenty
SpatialExternalSurfacereprezentujące sfery 180° i 360°. (I40ef2, b/391705799) - Dodano
SubspaceModifier.aspectRatio(Ide5ab, b/399729509, b/414762147) - Dodano interfejs
SceneCoreEntityAPI, aby zwiększyć interoperacyjność międzySceneCorea Compose for XR. (I50bb3, b/423020989) - Udostępniliśmy interfejs API
GravityAlignedsubspacedo obsługi funkcji nieskalowanej iGravityAligned(I07359).
Zmiany w interfejsie API
SpatialDialog()będzie zgodny z konfiguracją naciśnięciaSpatialDialogProperties.dismissOnBack. (Ib453b, b/416797132)- Zaktualizuj wartość
minimumPanelDimensiondo nowego domyślnego rozmiaru wymiaruDimensions(0.1f, 0.1f, 0.1f), ponieważ jest on wyrażony w metrach. (Ib852a) - Podprzestrzenie i Orbiter będą teraz zachowywać swój stan wewnętrzny w przestrzeni bazowej i gdy aplikacja działa w tle. W trybie obszaru domowego Subspace nadal będzie konfigurować scenę w ramach przygotowań do przejścia na tryb pełnego obszaru. (I40317, b/416037751)
SpatialDialogszachowają teraz swój stan, gdy aplikacja będzie działać w tle. (I6aa56)- Urządzenie
ApplicationSubspaceodziedziczy zalecane ustawienia skali i położenia z systemu. (I4565f, b/418834194) - Dodaliśmy lepszy komunikat o błędzie i wcześniej wywołujemy błąd, gdy w kontekście innym niż
SubspaceComposableużywany jest znakSubspaceComposable. (Iee2ae, b/416484684) - Zmieniamy
ExperimentalSubspaceVolumeApiz ostrzeżenia na błąd, ponieważ ostrzeżenia są często pomijane w przypadku niewłaściwego użycia interfejsów API z możliwością komponowania. (I427aa, b/424864286) - Podprzestrzeń i
ApplicationSubspacesą teraz ograniczone przezrecommendedContentBoxInFullSpace. Wcześniej był on ograniczony polem widzeniaSpatialUser. (I41015, b/423074142) - Zaktualizuj
SpatialElevation, aby używać minimalnego rozmiaru i nie korzystać już z rozmiaru zakodowanego na stałe (I2dbe6, b/427785338) - Zaktualizuj sposób, w jaki sprawdzamy
SpatialAcitivityPanel, aby aktualizować go, gdy zmieniana jest kluczowa zmienna. (I0f64d, b/427999029) - Usuń
VolumeConstraints.Unboundedi ustaw domyślne wartości ograniczeń na równoważne. (Ie24ec, b/407938414) SpatialFeatheringSizenie jest już publiczny (I1c15b, b/399432430)- Zmieniliśmy nazwę XR
PlaceablenaSubspacePlaceable, aby odróżnić ją odPlaceablew Compose. (I74874) - Usunięcie ustawień Orbiter i dodanie
shouldRenderInNonSpatialjako nowego parametru. Dodatkowo usunęliśmy klasęEdgeOffseti dodaliśmyorbiterOffsetTypejako nowy parametr, aby ujednolicićOrbiter()Functions. Oprócz zmiany nazwyOrbiterEdgenaContentEdge. (Iebf3d) - Zmieniliśmy nazwę
MeasurablenaSubspaceMeasurable, aby odróżnić ten typ od typuMeasurablew usłudze Compose. (I9726c) - Zmiana nazwy
MeasureResultnaSubspaceMeasureResult(I9f34d) - Usunięto interfejs API
setSubspaceContentna rzecz korzystania z interfejsusetContentw Compose z funkcją kompozycyjnąSubspace. (Ifff4c, b/421427391, b/421427391) - Nazwa
MeasurePolicyzostała zmieniona naSubspaceMeasurePolicy. (I37a9b, b/422553904) - Przekształć
SubspaceSemanticsInfow zamknięty interfejs, ponieważ bez ustawień domyślnych nie będziemy mogli dodawać członków. (I372f9, b/423704068) - Zaktualizowano dokumentację
SpatialExternalSurface, zmieniono nazwęContentSecurityLevelnaSurfaceProtection(I3c460, b/420982808) - Dodano przeciążony konstruktor modyfikatora przenośnego, który umożliwia zakotwiczenie. (Ic0c70)
- Dodaliśmy więcej dostawców pozycji dla etykietek, dzięki czemu deweloperzy mogą teraz określać, czy etykietka ma być umieszczana nad, pod, po lewej czy po prawej stronie elementu zakotwiczonego. Dodaj interfejs API, który przyjmuje kształt karetki, aby można było podać więcej niestandardowych kształtów. (Ie513c, b/374766087, b/418854637)
- Usunięto
CoreEntityjakoPublishedApi(Ifee05)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że podczas renderowania symbol
SpatialDialogmigał. (Ife73c, b/401619909) - Rozwiązaliśmy problem, który uniemożliwiał przyciemnienie panelu aktywności.
SpatialDialog(I8ca6c, b/367442109) - Naprawiono problem z wyświetlaniem niektórych treści w oknie XR (I17cd5, b/418062437)
- Rozwiązaliśmy problem polegający na tym, że po kliknięciu w treści zamykało się okno
SpatialPopup. (If262c, b/417245722) - Rozwiązaliśmy problem polegający na tym, że podczas łączenia
resizable().movable()panel SpatialPanel nie zmieniał prawidłowo rozmiaru do nowego rozmiaru. (I02ee3, b/422264230) - Naprawiono nakładanie się elementu
topBarna menu wSpatialComposeVideoPlayer(Id33bc, b/427168167) - Stały promień narożnika nie jest renderowany (I975fe, b/428261830)
Wersja 1.0.0-alpha04
7 maja 2025 r.
Publikacje 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, który umożliwia niestandardowym typomSubspaceModifierdostęp do lokalnych wartości kompozycji. - Dodaliśmy nowy interfejs API
SpatialPanel, który jest zgodny ze stylem implementacji ComposeAndroidViewi zastępuje poprzedni interfejsViewBased SpatialPanel. - Dodano obiekt towarzyszący
VolumeConstraints.Unbounded, który reprezentuje nieograniczone ograniczenia. - Dodano
SubspaceModifier.onPointSourceParams, aby umożliwić przestrzenne źródło dźwięku. - Dodano publiczny element
ApplicationSubspace, który oferuje opcjonalny elementVolumeConstraintsdo zdefiniowania 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 bieżącym polem widzeniaSpatialUserpod względem szerokości i wysokości. Użytkownicy mogą podać ograniczenia, które będą używane, jeśli nie można określić pola widzenia. W przeciwnym razie używane są domyślne wartości szerokości i wysokości pola widzenia. - Dodano
SpatialExternalSurface, którego można używać do renderowania treści stereoskopowych.SpatialExternalSurfacemożna dostosować za pomocą modyfikatorów (z wyjątkiem przezroczystości) i efektu rozmycia krawędzi. - Dodaliśmy nowy
pointerHoverIconmodyfikator podprzestrzeni, który umożliwia użytkownikom ustawienie 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 poziomem API 34 lub wyższym. (Iae0f8) - Projekty wydane w Kotlinie 2.0 wymagają KGP w wersji 2.0.0 lub nowszej. (Idb6b5)
- Obsługa przycisku Wstecz będzie teraz działać w przypadku paneli przestrzennych bez osadzonych aktywności. Aby obsługa przycisku Wstecz działała, musisz określić
android:enableOnBackInvokedCallback="true"w pliku manifestu Androida. - Funkcja cofania będzie teraz działać w przypadku dialogów przestrzennych. Aby działało przekazywanie wstecz, musisz określić
android:enableOnBackInvokedCallback="true"w pliku manifestu Androida. - Komponenty
SpatialPaneloparte na komponowaniu i widoku mogą teraz dostosowywać swój rozmiar do zawartości. - Deweloperzy mogą teraz ustawiać własne wartości
SpatialElevationLeveli nie są ograniczeni do wstępnie zdefiniowanych poziomów. - Poziom wysokości orbity można teraz dostosowywać za pomocą parametru
elevation. - Podprzestrzeń może być teraz domyślnie ograniczona polem widzenia
SpatialUserw pionie i poziomie. 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 przesuwanie komponentu kompozycyjnego podprzestrzeni za pomocą modyfikatora movable. - Parametr
namezostał usunięty z interfejsów API przestrzennych, takich jakSpatialRowiSpatialPanel. Do debugowania drzew kompozycji przestrzennych używajSubspaceModifier.testTag. - Usunięto nieobsługiwane przeciążenie funkcji
SpatialPopup, która ma tylko parametryspatialElevationLevelicontent. Użyj interfejsu, który obsługujeonDimissRequest. - Wywołanie zwrotne
onPoseChangez modyfikatora Movable zostało usunięte. Użyj w zamian zasadyonMove. SubspaceModifiersnie będą już stosować efektów, jeśli zostaną odłączone lub są w trakcie odłączania.- Dotychczasowy interfejs API
SpatialRowzostał podzielony na interfejsySpatialRowiSpatialCurvedRow. Jeśli wcześniej używasz parametruSpatialRowcurveRadius, teraz używaj parametruSpatialCurvedRow, który działa tak samo. MainPaneliActivityPanelnie mają już pasków tytułu, gdy są uruchamiane na podobnie aktualnym obrazie systemu.- Modyfikatory alfa i skali można teraz łączyć, a ich wartości będą mnożone, aby uzyskać ostateczną wartość alfa lub skali.
onPoseChangeWywołanie zwrotne z modyfikatora Przenośny zostało zoptymalizowane pod kątem płynniejszego ruchu w pozycji.- Modyfikatory, które można przesuwać i których rozmiar można zmieniać, będą teraz wywoływać 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 ponowne ułożenie. - Zoptymalizowane aktualizacje łańcucha modyfikatorów, aby lepiej wykorzystywać istniejące modyfikatory.
Poprawki błędów
- Zatrzymano przyciemnianie, gdy wyświetlono
SpatialDialog. (Ic4594) - Żądania ponownego 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 awarię w funkcji kompozycyjnej
MainPanel(), która występowała, gdy jeden z wymiarów był ustawiony na zero, bezpośrednio lub podczas obliczania układu, np. obliczaniaSpatialRow/SpatialColumn. Panel zostanie 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ązano problem z symbolem
maintainAspectRatiow przypadku modyfikatora o zmienianym rozmiarze. Proporcje powinny zostać zachowane. - Rozwiązaliśmy problem z zagnieżdżonymi podprzestrzeniami, które były nieprawidłowo pozycjonowane w jednej klatce.
- Rozwiązaliśmy problem, który powodował, że zaokrąglone rogi czasami nie były stosowane, gdy powinny.
NestedSubspacesnie będzie już wyświetlać się w nieprawidłowej lokalizacji przez 1 klatkę.
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 nie zawierają istotnych zmian w porównaniu z ostatnią wersją alfa. Wersja 1.0.0-alpha03 zawiera te zmiany.
Wersja 1.0.0-alpha02
12 lutego 2025 r.
Publikacje 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 zmiany.
Nowe funkcje
- Panel aktywności może teraz przyciemniać swoją zawartość, gdy aktywne jest okno przestrzenne.
- Interfejs
OrbiterAPI jest teraz dostępny w kontekstachSubspaceComposablei będzie dołączać Orbitery do najbliższego elementu kompozycyjnego opartego naSubspaceLayout. - Wprowadzono
LayoutCoordinatesAwareModifierNode, aby umożliwić stosowanie niestandardowych modyfikatorów opartych na pozycjonowaniu. - Dodaliśmy metody cyklu życia dołączania/odłączania do
SubspaceModifier.Node. - Do modyfikatora ruchomego dodano element
scaleWithDistance. 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
minSDKdo 24. Wszystkie interfejsy Jetpack XR API nadal wymagają interfejsu API 34 w czasie działania. - Konstruktory
Orbiter,EdgeOffset.inner,EdgeOffset.outeriEdgeOffset.overlapnie są już@Composablemetodami, co umożliwia ich używanie w kontekstach niekomponowalnych. - Zaktualizuj poziomy wysokości przestrzennej, aby były zgodne z najnowszą specyfikacją UX.
- Zaimplementuj interfejs
SubspaceSemanticsInfow usłudzeMeasurableLayout. - Zmieniono nazwę
SubspaceModifierElementnaSubspaceModifierNodeElement.
Poprawki błędów
- Poprawki stabilizujące zamawianie
SubspaceModifier.SubspaceModifierpowinna działać bardziej niezawodnie. Modyfikatory przesunięcia, obrotu, skalowania, przenoszenia i zmiany rozmiaru powinny być teraz dostępne w dowolnej kolejności.
Wersja 1.0.0-alpha01
12 grudnia 2024 r.
Publikacja androidx.xr.compose:compose-*1.0.0-alpha01
Funkcje pierwszej wersji
Pierwsza wersja Jetpack Compose na XR dla deweloperów. Używaj znanych koncepcji Compose, takich jak wiersze i kolumny, aby tworzyć przestrzenne układy interfejsu 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 kompozycje podprzestrzenne i przestrzenne, takie jak panele przestrzenne i orbiter, które umożliwiają umieszczanie istniejącego interfejsu 2D opartego na Compose lub widokach w układzie przestrzennym. Wprowadza komponent Volume subspace composable, który umożliwia umieszczanie encji SceneCore, takich jak modele 3D, względem interfejsu. Więcej informacji znajdziesz w tym przewodniku dla programistów:
Subspace: ten komponent 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 elementów takich jak istniejąca architektura aplikacji między XR a innymi urządzeniami bez konieczności przenoszenia stanu przez całe drzewo interfejsu lub przebudowywania aplikacji.SpatialPanel: panel przestrzenny to komponent przestrzenny, który umożliwia wyświetlanie treści aplikacji, np. odtwarzanie wideo, obrazy statyczne lub inne treści.
Orbiter: orbiter to przestrzenny komponent interfejsu. Jest przeznaczony do dołączania do odpowiedniego panelu przestrzennego i zawiera elementy nawigacyjne oraz czynności 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ą funkcji
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 włączone są funkcje przestrzenne.
SpatialDialog: panel lekko cofnie się w głąb, aby wyświetlić wysunięte okno.SpatialPopUp: panel lekko się cofnie w głąb, aby wyświetlić wyskakujące okienko.SpatialElevation: parametrSpatialElevationLevelmożna ustawić tak, aby dodać wysokość.
SpatialCapabilities: możliwości przestrzenne mogą się zmieniać w miarę interakcji użytkowników z aplikacją lub systemem, a nawet być zmieniane przez samą aplikację – na przykład podczas przechodzenia do przestrzeni bazowej lub pełnej przestrzeni. Aby uniknąć problemów, aplikacja musi sprawdzać wartość
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 passthrough,isSpatialAudioEnabled: dźwięk przestrzenny.
Znane problemy
- Obecnie do korzystania z Jetpack Compose na potrzeby XR wymagany jest pakiet SDK w wersji co najmniej 30. Aby obejść ten problem, możesz dodać ten wpis w pliku manifestu
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>, aby móc tworzyć i uruchamiać aplikację z wersją minSDK 23. - Aplikacje Jetpack XR wymagają obecnie w pliku AndroidManifest prośby o uprawnienie
android.permission.SCENE_UNDERSTANDING. - Gdy aplikacja uruchamia się bezpośrednio w pełnej przestrzeni za pomocą właściwości
PROPERTY_XR_ACTIVITY_START_MODEw pliku manifestu, działania/aplikacje są początkowo otwierane w przestrzeni bazowej, a potem przechodzą do pełnej przestrzeni. - Pliki glTF w komponentach Volume Composables mogą początkowo migać w niewłaściwym miejscu.
- Użycie elementu SpatialDialog w panelu, który został znacznie przesunięty, spowoduje przesunięcie treści w niewłaściwym kierunku.