Jetpack Compose na potrzeby XR
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
12 grudnia 2024 r. | - | - | - | 1.0.0-alpha01 |
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 dodać swój głos do 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-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 urządzenia 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 nową aplikację 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
. UżyjSubspaceModifier
, aby dostosować układ.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ć podwyższone okno dialogowe.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 skompilować i uruchomić aplikację z wartością minSDK 23, możesz dodać do pliku manifestu wpis
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
. - 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.