Tìm hiểu về đối tượng sửa đổi không gian con

Các thiết bị XR được hỗ trợ
Hướng dẫn này giúp bạn xây dựng các trải nghiệm cho những loại thiết bị XR sau.
Thiết bị đeo đầu XR
Kính thông minh XR có dây

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, 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 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, yz,
  • Sử dụng axisAngle, là Vector3 biể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ột SpatialResizeEvent và 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 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ử.