Android Jetpack Compose çerçevesini kullanmak, Android kullanıcı arayüzü geliştirmedeki en son gelişmelerden yararlanmanın ve uygulamanızın sektördeki en iyi uygulamalarla güncel kalmasını sağlamanın en iyi yoludur.
Ancak geçiş yapmadıysanız ve Android Görünümleri tabanlı bir uygulamayı uzamsallaştırmaya çalışıyorsanız uygulayabileceğiniz birkaç yaklaşım vardır.
SpatialPanels'da mevcut görünümlerinizi yeniden kullanma
SpatialPanel, XR için Jetpack Compose kitaplığının bir parçası olsa da görünümleri de kabul eder. MainActivity'nizde Subspace kullanırken mevcut bir görünümü aşağıdaki örnekte gösterildiği gibi bir SpatialPanel içine yerleştirin.
setContent { Subspace { SpatialPanel( modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp) ) { MyCustomView(this@ActivityWithSubspaceContent) } } }
Android Görünümleri ve Compose birlikte çalışabilirlik API'lerini kullanma
Görünümler ve Compose arasındaki birlikte çalışabilirlik ile ilgili kılavuzu inceleyin. Bu belgede, bu çerçevelerin birlikte kullanımı ele alınmakta ve kullanabileceğiniz kod örneklerinin bağlantıları yer almaktadır.
Mevcut bir parçaya uzamsal paneller ve yörünge öğeleri eklemek için ComposeView kullanma
XML düzeninizde ComposeView kullanarak composable'lar ekleyin ve yeni XR içerikleri oluşturun. onCreateView() işlevinde ComposeView öğesini bulmak için görünüm bağlama veya findViewById kullanın.
ComposeView kılavuzu 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 inşa edilmiştir. Görünüm tabanlı bir uygulamayı uzamsallaştırıyorsanız mevcut kullanıcı arayüzü kodunuzu XR için Compose'da kullanmaya devam edebilir veya doğrudan Jetpack SceneCore'un Session ile çalışmayı tercih edebilirsiniz.
PanelEntity kullanarak panelleri doğrudan SceneCore'dan oluşturabilirsiniz. dimensions kullanarak panelin boyutunu metre cinsinden veya pixelDimensions kullanarak piksel cinsinden ayarlayın. İlgili bileşenleri kullanarak panelleri taşınabilir veya yeniden boyutlandırılabilir hale getirmeyi seçebilirsiniz. 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" )