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, представляющий вращение.
rotateToLookAtUser
Модификатор rotateToLookAtUser непрерывно вращает контент таким образом, чтобы он всегда был обращен к пользователю. Этот модификатор также можно использовать для достижения эффекта «билборда», когда контент вращается вокруг пользователя по оси Y, оставаясь при этом в вертикальном положении и выровненным по силе тяжести. Для этого объедините модификатор rotateToLookAtUser с модификатором gravityAligned .
Перемещайте и изменяйте размер с помощью компонуемых объектов.
Предоставьте пользователям возможность напрямую управлять положением и размером объектов в трехмерном пространстве. Вы можете добавлять эти модификаторы к отдельным компонентам (например, SpatialPanel ), подпространствам и компонентам пространственной компоновки (например, SpatialRow или SpatialColumn ).
Переместить элементы
Модификаторы перемещения позволяют пользователям захватывать и изменять положение элементов подпространства.
transformingMovable: Используйте этот модификатор для стандартного перемещения. Этот модификатор настраивает элемент таким образом, чтобы он был интерактивным и мог перемещаться пользователем. Система автоматически вычисляет и применяет новую позу и масштаб на основе ввода пользователя.movable: Используйте этот модификатор для определения пользовательского поведения перемещения. Хотя система предоставляет возможности перемещения, вы должны использовать необходимое событиеonMoveи применить результат. Это полезно для ограничения перемещения или создания пользовательского перемещения в вашем приложении.
Изменить размер элементов
Модификаторы с изменяемым размером позволяют пользователям захватывать и изменять размер элементов подпространства.
transformingResizable: Используйте этот модификатор для изменения размера, управляемого системой. Этот модификатор автоматически обрабатывает жест изменения размера и применяет новые размеры, указанные пользователем.resizable: Используйте этот модификатор для настройки логики изменения размера. Хотя система предоставляет возможность изменения размера, вам необходимо использовать событиеonResizeи применить результат. Этот модификатор полезен в сложных сценариях, таких как сохранение определенного соотношения сторон или изменение общей компоновки других компонентов после завершения изменения размера.
Изменить внешний вид составных элементов
alpha
Модификатор alpha задает прозрачность элемента и его дочерних элементов, где 0f означает полную прозрачность, а 1.0f — полную непрозрачность.
scale
Модификатор scale изменяет масштаб содержимого составного объекта по горизонтальной, вертикальной осям и оси глубины.
Тестирование и доступность
semantics
Модификатор semantics добавляет семантику к узлу компоновки для использования при тестировании и обеспечении доступности. См. раздел «Семантика в Jetpack Compose» и SemanticsModifier .
testTag
Модификатор testTag — это сокращение от SemanticsPropertyReceiver.testTag , которое позволяет тестовым фреймворкам находить этот элемент в тестах.