SubspaceModifier аналогичен модификатору Compose для компонуемых элементов в Subspace . SubspaceModifier позволяет манипулировать компонуемыми элементами в трехмерном пространстве, помогая позиционировать, вращать и добавлять поведение к узлам трехмерной компоновки.
Макет
По умолчанию Subspace ограничено рекомендуемым пространством для просмотра приложения . Эти границы используются при измерении расположения компонентов подпространства, аналогично границам в 2D-макетах Compose .
Границы заполнения
Модификаторы fillMaxSize , fillMaxWidth , fillMaxHeight и fillMaxDepth позволяют содержимому (частично) заполнять границы родительского элемента. Использование модификаторов fill помогает вашему приложению размещать контент независимо от характеристик дисплея XR-устройства.
Укажите размер и необходимый размер.
Модификаторы size , width , height и depth задают предпочтительный размер содержимого. Для задания точного размера используйте requiredSize , requiredWidth , requiredHeight и requiredDepth . Эти единицы измерения должны быть указаны в dp ; для преобразования из метров в dp используйте Meter.toDp() .
Позиционные составные элементы
offset
Модификатор offset перемещает составной объект в трехмерном пространстве вдоль осей x , y и z . Эти единицы измерения должны быть указаны в dp ; для преобразования из метров в dp используйте Meter.toDp() .
rotate
Модификатор rotate вращает заданный составной объект в пространстве. Направление и величину вращения можно задать различными способами:
- Используя тангаж, рыскание и крен, которые определяют вращение вокруг осей
x,yиzсоответственно, - Используя параметр
axisAngle, который представляет собой векторVector3, обозначающий ось вращения и величину поворота вокруг неё, - Используя
Quaternion, представляющий вращение.
lookAtUser
Модификатор lookAtUser постоянно вращает заданный составной объект в пространстве таким образом, чтобы он казался обращенным к зрителю. Аналогичный модификатор, billboard , также вращает объект так, чтобы он был обращен к зрителю, но содержимое при этом остается в вертикальном положении.
Для использования этих модификаторов вашему приложению необходимо предоставить разрешение android.permission.HEAD_TRACKING . Кроме того, в текущей сессии необходимо установить параметр HeadTrackingMode.LAST_KNOWN .
Изменить внешний вид составных элементов
alpha
Модификатор alpha задает прозрачность элемента и его дочерних элементов, где 0f означает полную прозрачность, а 1.0f — полную непрозрачность.
scale
Модификатор scale изменяет масштаб содержимого составного объекта по горизонтальной, вертикальной осям и оси глубины.
Тестирование и доступность
semantics
Модификатор semantics добавляет семантику к узлу компоновки для использования при тестировании и обеспечении доступности. См. раздел «Семантика в Jetpack Compose» и SemanticsModifier .
testTag
Модификатор testTag — это сокращение от SemanticsPropertyReceiver.testTag , которое позволяет тестовым фреймворкам находить этот элемент в тестах.