SubspaceModifier jest podobny do modyfikatora Compose dla elementów kompozycyjnych
w Subspace. SubspaceModifier umożliwia manipulowanie elementami kompozycyjnymi w przestrzeni 3D, co pomaga w pozycjonowaniu, obracaniu i dodawaniu zachowań do węzłów układu 3D.
Układ
Domyślnie Subspace jest ograniczony przez zalecaną przestrzeń do wyświetlania
aplikacji. Te granice są używane podczas pomiaru układu komponentów podprzestrzeni
, podobnie jak granice w układach Compose 2D.
Wypełnij granice
Modyfikatory fillMaxSize, fillMaxWidth, fillMaxHeight i
fillMaxDepth powodują, że treść (częściowo) wypełnia granice elementu nadrzędnego.
Używanie modyfikatorów wypełnienia pomaga w układzie treści aplikacji, która jest niezależna od charakterystyki wyświetlacza urządzenia z XR.
Ustawianie rozmiaru i wymaganego rozmiaru
Modyfikatory size, width, height i depth
określają preferowany rozmiar treści. Aby zadeklarować dokładny rozmiar treści, użyj requiredSize, requiredWidth, requiredHeight i requiredDepth. Te jednostki muszą być określone
w dp; aby przekonwertować metry na dp, użyj Meter.toDp().
Pozycjonowanie elementów kompozycyjnych
offset
Modyfikator offset przesuwa element kompozycyjny w przestrzeni 3D wzdłuż osi x, y,
i z. Te jednostki muszą być określone w dp; aby przekonwertować metry na
dp, użyj Meter.toDp().
rotate
Modyfikator rotate obraca dany element kompozycyjny w przestrzeni. Kierunek i stopień obrotu można określić na różne sposoby:
- za pomocą pochylenia, odchylenia i obrotu, które określają odpowiednio obrót wokół osi
x,yiz; - za pomocą
axisAngle, czyliVector3reprezentującego oś obrotu i stopień obrotu wokół niej; - za pomocą
Quaternionreprezentującego obrót.
rotateToLookAtUser
Modyfikator rotateToLookAtUser nieustannie obraca
treść, tak aby zawsze była skierowana do użytkownika. Możesz też użyć tego modyfikatora, aby uzyskać efekt „billboardu”, w którym treść obraca się w taki sposób, aby była skierowana do użytkownika na osi Y, a jednocześnie pozostawała w pozycji pionowej i wyrównana do grawitacji. Aby to zrobić,
połącz modyfikator rotateToLookAtUser z
modyfikatorem gravityAligned.
Przesuwanie i zmienianie rozmiaru za pomocą elementów kompozycyjnych
Umożliw użytkownikom bezpośrednie manipulowanie położeniem i rozmiarem obiektów w przestrzeni 3D. Możesz dodać te modyfikatory do poszczególnych komponentów (np. SpatialPanel), podprzestrzeni i komponentów układu przestrzennego (np. SpatialRow lub SpatialColumn).
Przesuwanie elementów
Gdy modyfikator movable jest obecny i włączony, wyświetlane są przeciągane elementy sterujące interfejsu
, które umożliwiają użytkownikowi przesuwanie elementu w przestrzeni 3D. Konkretne zachowanie tego ruchu jest określone przez podaną movePolicy:
MovePolicy.default: system całkowicie obsługuje ruch i automatycznie oblicza oraz stosuje nową pozę i skalę na podstawie danych wejściowych użytkownika.MovePolicy.custom: system oblicza pozę docelową na podstawie danych wejściowych, ale nie stosuje jej automatycznie do powiązanego elementu. Jest to przydatne do ograniczania ruchu lub tworzenia niestandardowego ruchu w aplikacji.
Zmienianie rozmiaru elementów
Gdy modyfikator resizable() jest obecny i włączony, wyświetlane są elementy sterujące interfejsu
, które umożliwiają użytkownikowi zmianę rozmiaru elementu w przestrzeni 3D. Konkretne zachowanie zmiany rozmiaru jest określone przez podaną resizePolicy:
ResizePolicy.default(): system automatycznie obsługuje gest zmiany rozmiaru i stosuje nowe wymiary do treści.ResizePolicy.custom(): system udostępniaSpatialResizeEventi nie stosuje automatycznie wyniku zmiany rozmiaru do powiązanego elementu.
Zmienianie wyglądu elementów kompozycyjnych
alpha
Modyfikator alpha ustawia przezroczystość elementu i jego elementów podrzędnych.
Wartość 0f oznacza pełną przezroczystość, a 1.0f – całkowitą nieprzezroczystość.
scale
Modyfikator scale skaluje zawartość elementu kompozycyjnego wzdłuż osi
poziomej, pionowej i głębokości.
Testowanie i ułatwienia dostępu
semantics
Modyfikator semantics dodaje semantykę do węzła układu na potrzeby
testowania i ułatwień dostępu. Zobacz Semantyka w Jetpack Compose i
SemanticsModifier.
testTag
Modyfikator testTag to skrót od
SemanticsPropertyReceiver.testTag, który umożliwia frameworkom testowym znajdowanie
elementu w testach.