Sử dụng khung Android Jetpack Compose là cách tốt nhất để tận dụng các tiến bộ mới nhất trong quá trình phát triển giao diện người dùng Android và đảm bảo ứng dụng của bạn luôn tuân theo các phương pháp hay nhất trong ngành.
Tuy nhiên, nếu chưa di chuyển và đang nỗ lực không gian hoá một ứng dụng dựa trên Android Views, bạn có thể áp dụng một số phương pháp.
Sử dụng lại các Khung hiển thị hiện có trong SpatialPanels
Mặc dù SpatialPanel
là một phần của thư viện Jetpack Compose cho XR, nhưng chúng cũng chấp nhận Khung hiển thị. Khi sử dụng setSubspaceContent
trong MainActivity, hãy đặt một thành phần hiển thị hiện có vào SpatialPanel
như trong ví dụ sau.
setSubspaceContent { SpatialPanel( modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp) ) { MyCustomView(this) } }
Sử dụng Khung hiển thị Android và API có khả năng tương tác với Compose
Tham khảo hướng dẫn về khả năng tương tác giữa Khung hiển thị và Compose. Tài liệu này trình bày cách sử dụng các khung này cùng nhau và chứa các đường liên kết đến các mẫu mã bạn có thể sử dụng.
Sử dụng ComposeView để thêm bảng điều khiển không gian và vệ tinh nhân tạo vào một mảnh hiện có
Sử dụng ComposeView
trong bố cục XML để thêm Thành phần kết hợp và tạo nội dung XR mới. Sử dụng tính năng Liên kết khung hiển thị hoặc findViewById
để tìm ComposeView
trong hàm onCreateView
.
Đọc thêm về hướng dẫn về ComposeView
.
override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { val view = inflater.inflate(R.layout.example_fragment, container, false) view.findViewById<ComposeView>(R.id.compose_view).apply { // Dispose of the Composition when the view's LifecycleOwner // is destroyed setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) setContent { // In Compose world SpatialPanel(SubspaceModifier.height(500.dp).width(500.dp)) { Text("Spatial Panel with Orbiter") } } } return view }
Làm việc trực tiếp với thư viện Jetpack SceneCore
Compose cho XR được xây dựng dựa trên Jetpack SceneCore. Nếu đang tạo không gian cho một ứng dụng dựa trên Khung hiển thị, bạn có thể tiếp tục sử dụng mã giao diện người dùng hiện có trong Compose cho XR hoặc chọn làm việc trực tiếp với Session
của Jetpack SceneCore.
Bạn có thể tạo bảng điều khiển trực tiếp từ SceneCore bằng cách sử dụng PanelEntity
. Đặt kích thước của bảng điều khiển theo mét bằng cách sử dụng Dimensions
hoặc theo pixel bằng cách sử dụng PixelDimensions
. Bạn có thể chọn làm cho bảng điều khiển có thể di chuyển hoặc thay đổi kích thước bằng cách sử dụng các thành phần tương ứng. Để biết thêm thông tin, hãy xem phần Thêm hành vi phổ biến vào thực thể.
val panelContent = MyCustomView(this) val panelEntity = PanelEntity.create( session = xrSession, view = panelContent, pixelDimensions = PixelDimensions(500, 500), name = "panel entity" )