Đối tượng sửa đổi không gian con

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, fillMaxHeightfillMaxDepth 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, heightdepth 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, requiredHeightrequiredDepth. 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, yz. 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, yz,
  • 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 ComposeSemanticsModifier.

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ử.