Android Jetpack Compose çerçevesini kullanmak, Android kullanıcı arayüzü geliştirmeyle ilgili en son gelişmelerden yararlanmanın ve uygulamanızın sektördeki en iyi uygulamalara uygun kalmasını sağlamanın en iyi yoludur.
Ancak henüz geçiş yapmadıysanız ve Android Views tabanlı bir uygulamayı uzamsallaştırmak için çalışıyorsanız uygulayabileceğiniz birkaç yaklaşım vardır.
Mevcut görünümlerinizi SpatialPanels'de yeniden kullanma
SpatialPanel
s, XR için Jetpack Compose kitaplığının bir parçası olsa da View'ları da kabul eder. MainActivity'nizde Subspace
kullanırken aşağıdaki örnekte gösterildiği gibi mevcut bir görünümü SpatialPanel
içine yerleştirin.
setContent { Subspace { SpatialPanel( modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp) ) { MyCustomView(this@ActivityWithSubspaceContent) } } }
Android Views ve Compose birlikte çalışabilirlik API'lerini kullanma
Görünümler ve Compose arasındaki birlikte çalışabilirlik ile ilgili kılavuza bakın. Bu dokümanda, bu çerçevelerin birlikte kullanılması ele alınmakta ve kullanabileceğiniz kod örneklerinin bağlantıları yer almaktadır.
Mevcut bir parçaya uzamsal paneller ve yörüngeler eklemek için ComposeView kullanma
Composable'lar eklemek ve yeni XR içerikleri oluşturmak için XML düzeninizde ComposeView
kullanın. Görünüm bağlamayı veya findViewById
kullanarak onCreateView()
işlevindeki ComposeView
öğesini bulun.
ComposeView
rehberliği hakkında daha fazla bilgi edinin.
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 }
Doğrudan Jetpack SceneCore kitaplığıyla çalışma
Compose for XR, Jetpack SceneCore üzerine kurulmuştur. Views tabanlı bir uygulamayı uzamsallaştırıyorsanız Compose for XR'da mevcut kullanıcı arayüzü kodunuzu kullanmaya devam edebilir veya doğrudan Jetpack SceneCore'un Session
ile çalışmayı tercih edebilirsiniz.
PanelEntity
kullanarak doğrudan SceneCore'dan paneller oluşturabilirsiniz. dimensions
kullanarak paneli metre cinsinden veya pixelDimensions
kullanarak piksel cinsinden ayarlayın. İlgili bileşenleri kullanarak panelleri taşınabilir veya yeniden boyutlandırılabilir hale getirebilirsiniz. Daha fazla bilgi için Varlıklara ortak davranış ekleme başlıklı makaleyi inceleyin.
val panelContent = MyCustomView(this) val panelEntity = PanelEntity.create( session = xrSession, view = panelContent, pixelDimensions = IntSize2d(500, 500), name = "panel entity" )