SubspaceModifier tương tự như đối tượng sửa đổi Compose cho các thành phần kết hợp trong Subspace. SubspaceModifier cho phép bạn thao tác với các thành phần kết hợp trong không gian 3D, giúp bạn định vị, xoay và thêm các hành vi vào các nút bố cục 3D.
Bố cục
Theo mặc định, Subspace sẽ bị giới hạn bởi không gian được đề xuất để xem một ứng dụng. Các ranh giới này được dùng khi đo bố cục của các thành phần không gian phụ, tương tự như ranh giới trong bố cục Compose 2D.
Giới hạn điền
Các đối tượng sửa đổi fillMaxSize, fillMaxWidth, fillMaxHeight và fillMaxDepth giúp nội dung (một phần) lấp đầy ranh giới của thành phần mẹ.
Việc sử dụng các đối tượng sửa đổi lấp đầy sẽ giúp bố cục ứng dụng của bạn có nội dung độc lập với đặc điểm hiển thị của thiết bị XR.
Đặt kích thước và kích thước bắt buộc
Các đối tượng sửa đổi size, width, height và depth khai báo kích thước ưu tiên của nội dung. Để khai báo kích thước chính xác của nội dung, hãy sử dụng requiredSize, requiredWidth, requiredHeight và requiredDepth. Bạn phải chỉ định các đơn vị này trong dp; để chuyển đổi từ mét sang dp, hãy dùng Meter.toDp().
Thành phần kết hợp vị trí
offset
Đối tượng sửa đổi offset di chuyển thành phần kết hợp trong không gian 3D dọc theo các trục x, y và z. Bạn phải chỉ định các đơn vị này bằng dp; để chuyển đổi từ mét sang dp, hãy dùng Meter.toDp().
rotate
Đối tượng sửa đổi rotate xoay thành phần kết hợp đã cho trong không gian. Bạn có thể chỉ định hướng và mức độ xoay theo nhiều cách:
- Sử dụng độ nghiêng, độ lệch và độ xoay, lần lượt chỉ định độ xoay quanh các trục
x,yvàz, - Sử dụng
axisAngle, làVector3biểu thị trục xoay và số độ mà nó sẽ xoay quanh, - Sử dụng
Quaternionđại diện cho vòng xoay.
rotateToLookAtUser
Bộ sửa đổi rotateToLookAtUser liên tục xoay nội dung để nội dung luôn hướng về phía người dùng. Bạn cũng có thể sử dụng đối tượng sửa đổi này để đạt được hiệu ứng "biển quảng cáo", trong đó nội dung xoay để hướng về người dùng trên trục Y trong khi vẫn giữ thẳng đứng và căn chỉnh theo trọng lực. Để thực hiện việc này, hãy kết hợp đối tượng sửa đổi rotateToLookAtUser với đối tượng sửa đổi gravityAligned.
Di chuyển và đổi kích thước bằng thành phần kết hợp
Cho phép người dùng trực tiếp điều chỉnh vị trí và kích thước của các đối tượng trong không gian 3D. Bạn có thể thêm các đối tượng sửa đổi này vào từng thành phần (như SpatialPanel), không gian phụ và thành phần bố cục không gian (như SpatialRow hoặc SpatialColumn).
Di chuyển các phần tử
Khi bộ sửa đổi movable xuất hiện và được bật, các chế độ kiểm soát giao diện người dùng có thể kéo sẽ xuất hiện để cho phép người dùng di chuyển phần tử trong không gian 3D. Hành vi cụ thể của chuyển động này được xác định bằng movePolicy được cung cấp:
MovePolicy.default: Hệ thống xử lý hoàn toàn chuyển động và tự động tính toán cũng như áp dụng tư thế và tỷ lệ mới dựa trên hoạt động đầu vào của người dùng.MovePolicy.custom: Hệ thống tính toán Pose mục tiêu dựa trên dữ liệu đầu vào, nhưng không tự động áp dụng Pose đó cho phần tử được liên kết. Điều này hữu ích cho việc hạn chế chuyển động hoặc tạo chuyển động tuỳ chỉnh trong ứng dụng của bạn.
Đổi kích thước phần tử
Khi bộ sửa đổi resizable() xuất hiện và được bật, các chế độ kiểm soát giao diện người dùng sẽ xuất hiện để cho phép người dùng đổi kích thước phần tử trong không gian 3D. Hành vi cụ thể của thao tác đổi kích thước được xác định bằng resizePolicy được cung cấp:
ResizePolicy.default(): Hệ thống tự động xử lý cử chỉ đổi kích thước và áp dụng kích thước mới cho nội dung.ResizePolicy.custom(): Hệ thống cung cấp mộtSpatialResizeEventvà không tự động áp dụng kết quả của thao tác đổi kích thước cho phần tử được liên kết.
Thay đổi giao diện của các thành phần kết hợp
alpha
Đối tượng sửa đổi alpha đặt độ mờ của phần tử và các phần tử con của phần tử đó, trong đó 0f biểu thị độ trong suốt hoàn toàn và 1.0f biểu thị độ mờ hoàn toàn.
scale
Đối tượng sửa đổi scale sẽ điều chỉnh tỷ lệ nội dung của thành phần kết hợp dọc theo trục ngang, trục dọc và trục độ sâu.
Kiểm thử và khả năng hỗ trợ tiếp cận
semantics
Đối tượng sửa đổi semantics thêm ngữ nghĩa vào nút bố cục để dùng trong kiểm thử và hỗ trợ tiếp cận. Xem phần Ngữ nghĩa trong Jetpack Compose và SemanticsModifier.
testTag
Đối tượng sửa đổi testTag là một cách viết tắt của SemanticsPropertyReceiver.testTag, cho phép các khung kiểm thử tìm thấy phần tử trong các kiểm thử.