Menggunakan framework Android Jetpack Compose adalah cara terbaik untuk memanfaatkan kemajuan terbaru dalam pengembangan UI Android dan memastikan aplikasi Anda tetap mengikuti praktik terbaik industri.
Namun, jika Anda belum bermigrasi, dan sedang berupaya melakukan spasialisasi aplikasi berbasis Tampilan Android, ada beberapa pendekatan yang dapat Anda lakukan.
Menggunakan kembali View yang ada dalam SpatialPanels
Meskipun SpatialPanel
adalah bagian dari library Jetpack Compose untuk XR, library ini
juga menerima View. Saat menggunakan setSubspaceContent()
di MainActivity,
tempatkan tampilan yang ada ke dalam SpatialPanel
seperti yang ditunjukkan dalam contoh
berikut.
setSubspaceContent { SpatialPanel( modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp) ) { MyCustomView(this) } }
Menggunakan API interoperabilitas View dan Compose Android
Lihat panduan tentang interoperabilitas antara View dan Compose. Dokumentasi ini membahas penggunaan framework ini secara bersamaan dan berisi link ke contoh kode yang dapat Anda gunakan.
Menggunakan ComposeView untuk menambahkan panel spasial dan orbiter ke fragmen yang ada
Gunakan ComposeView
di tata letak XML untuk menambahkan Composable dan membuat konten
XR baru. Gunakan View binding atau findViewById
untuk menemukan
ComposeView
dalam fungsi onCreateView()
.
Baca panduan ComposeView
lebih lanjut.
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 }
Bekerja langsung dengan library Jetpack SceneCore
Compose untuk XR dibuat berdasarkan Jetpack SceneCore. Jika
melakukan spatialisasi aplikasi berbasis View, Anda dapat terus menggunakan kode UI yang ada
dalam Compose untuk XR atau memilih untuk bekerja langsung dengan
Session
Jetpack SceneCore.
Anda dapat mem-build panel langsung dari SceneCore menggunakan PanelEntity
. Tetapkan
ukuran panel dalam meter menggunakan Dimensions
, atau dalam piksel menggunakan
PixelDimensions
. Anda dapat memilih untuk membuat panel dapat dipindahkan atau diubah ukurannya
menggunakan komponen yang sesuai. Untuk mengetahui informasi selengkapnya, lihat Menambahkan perilaku umum ke entity.
val panelContent = MyCustomView(this) val panelEntity = PanelEntity.create( session = xrSession, view = panelContent, pixelDimensions = PixelDimensions(500, 500), name = "panel entity" )