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.
Điền ranh giới
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 trong 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
,y
vàz
, - Sử dụng
axisAngle
(làVector3
đại diện cho trục xoay) và số độ mà nó phải xoay quanh, - Sử dụng
Quaternion
đại diện cho chế độ xoay.
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
chia 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.
Thêm hành vi vào các thành phần kết hợp
resizable
Khi đối tượng sửa đổi resizable
đượ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 đổi kích thước phần tử. Điều này tương tự như việc sử dụng ResizableComponent
trên một Entity
.
movable
Khi đối tượng sửa đổi movable
được bật, các chế độ kiểm soát trên giao diện người dùng sẽ được thêm vào thành phần, cho phép người dùng di chuyển phần tử trong không gian 3D. Điều này tương tự như việc sử dụng MovableComponent
trên một Entity
.
Nút bố cục movable
có thể tuỳ ý chỉ định các loại mặt phẳng mà nút này sẽ liên kết khi được di chuyển. Ví dụ: để tạo SpatialPanel
chụp nhanh vào các bảng:
SpatialPanel(
modifier.movable(anchorPlaneSemantics = setOf(PlaneSemantic.TABLE))
) {
// This panel snaps to available planes that are detected as a TABLE.
}
Để gắn vào các mặt phẳng, bạn cần cấp android.permission.SCENE_UNDERSTANDING_COARSE
quyền khi bắt đầu chạy cho ứng dụng của mình.
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ử.