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

Một 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 hành vi vào các nút bố cục 3D.

Bố cục

Theo mặc định, một Subspace được giới hạn bởi không gian được đề xuất để xem ứng dụng. Các giới hạn này được dùng khi đo lường bố cục của các thành phần không gian phụ, tương tự như các giới hạn trong bố cục Compose 2D.

Điền vào giới hạn

Các đối tượng sửa đổi fillMaxSize, fillMaxWidth, fillMaxHeightfillMaxDepth giúp nội dung (một phần) điền vào giới hạn của thành phần mẹ. Việc sử dụng đối tượng sửa đổi điền giúp ứng dụng của bạn bố trí nội dung độc lập với các đặ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, 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 sử dụng Meter.toDp().

Định vị các thành phần kết hợp

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 sử 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 cao độ, góc xoay ngang và góc xoay dọc, lần lượt chỉ định góc xoay quanh các trục x, yz,
  • Sử dụng axisAngle, là Vector3 đại diện cho trục xoay và số độ mà trục này cần xoay quanh,
  • Sử dụng Quaternion đại diện cho góc xoay.

rotateToLookAtUser

Đối tượng 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 "bảng quảng cáo", trong đó nội dung xoay để hướng về phía người dùng trên trục Y trong khi vẫn thẳng đứng và căn chỉnh theo trọng lực. Để thực hiện việc nà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 các thành phần kết hợp

Cho phép người dùng trực tiếp thao tác với 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 các thành phần riêng lẻ (như SpatialPanel), không gian phụ và các thành phần bố cục không gian (như SpatialRow hoặc SpatialColumn).

Di chuyển các phần tử

Các đối tượng sửa đổi có thể di chuyển cho phép người dùng lấy và định vị lại các phần tử không gian phụ.

  • transformingMovable: Sử dụng đối tượng sửa đổi này để di chuyển tiêu chuẩn. Đối tượng sửa đổi này định cấu hình phần tử để người dùng có thể tương tác và di chuyển. Hệ thống sẽ tự động tính toán và á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.

  • movable: Sử dụng đối tượng sửa đổi này để xác định hành vi di chuyển tuỳ chỉnh. Mặc dù hệ thống cung cấp khả năng di chuyển, nhưng bạn phải sử dụng sự kiện onMove bắt buộc và áp dụng kết quả. Điều này hữu ích khi bạn muốn hạn chế việc di chuyển hoặc tạo chuyển động tuỳ chỉnh trong ứng dụng.

Đổi kích thước các phần tử

Các đối tượng sửa đổi có thể đổi kích thước cho phép người dùng lấy và đổi kích thước các phần tử không gian phụ.

  • transformingResizable: Sử dụng đối tượng sửa đổi này để đổi kích thước do hệ thống quản lý. Đối tượng sửa đổi này tự động xử lý cử chỉ đổi kích thước và áp dụng các kích thước mới mà người dùng chỉ định.

  • resizable: Sử dụng đối tượng sửa đổi này cho logic đổi kích thước tuỳ chỉnh. Mặc dù hệ thống cung cấp khả năng đổi kích thước, nhưng bạn phải sử dụng sự kiện onResize và áp dụng kết quả. Đối tượng sửa đổi này hữu ích cho các trường hợp phức tạp, chẳng hạn như duy trì một tỷ lệ khung hình cụ thể hoặc điều chỉnh lại bố cục tổng thể của các thành phần khác sau khi quá trình đổi kích thước kết thúc.

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 đại diện cho độ trong suốt hoàn toàn và 1.0f đại diện cho độ mờ hoàn toàn.

scale

Đối tượng sửa đổi scale điều chỉnh tỷ lệ nội dung của thành phần kết hợp dọc theo các trục ngang, dọc và độ 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à khả năng hỗ trợ tiếp cận. Xem bài viết Ngữ nghĩa trong Jetpack ComposeSemanticsModifier.

testTag

Đối tượng sửa đổi testTag là 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 bài kiểm thử.