অ্যান্ড্রয়েড জেটপ্যাক কম্পোজ ফ্রেমওয়ার্ক ব্যবহার করা হল অ্যান্ড্রয়েড UI ডেভেলপমেন্টের সর্বশেষ অগ্রগতির সুবিধা নেওয়ার এবং আপনার অ্যাপ্লিকেশনটি শিল্পের সেরা অনুশীলনের সাথে বর্তমান থাকা নিশ্চিত করার সর্বোত্তম উপায়।
যাইহোক, আপনি যদি স্থানান্তরিত না হয়ে থাকেন এবং একটি অ্যান্ড্রয়েড ভিউ ভিত্তিক অ্যাপকে স্থানান্তরিত করার জন্য কাজ করছেন, তবে আপনি কিছু পন্থা অবলম্বন করতে পারেন।
SpatialPanels-এর মধ্যে আপনার বিদ্যমান ভিউ পুনরায় ব্যবহার করুন
যদিও SpatialPanel
XR লাইব্রেরির জন্য Jetpack Compose-এর অংশ, তারা ভিউও গ্রহণ করে। আপনার MainActivity-এ setSubspaceContent
ব্যবহার করার সময়, নিম্নলিখিত উদাহরণে দেখানো হিসাবে একটি SpatialPanel
এ একটি বিদ্যমান ভিউ রাখুন।
setSubspaceContent {
SpatialPanel(
view = MyCustomView(this),
modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp)
)
}
অ্যান্ড্রয়েড ভিউ এবং কম্পোজ ইন্টারঅপারেবিলিটি API ব্যবহার করুন
ভিউ এবং কম্পোজের মধ্যে ইন্টারঅপারেবিলিটি সম্পর্কে নির্দেশিকা দেখুন। এই ডকুমেন্টেশনটি এই ফ্রেমওয়ার্কগুলিকে একসাথে ব্যবহার করে কভার করে এবং আপনি ব্যবহার করতে পারেন এমন কোড নমুনার লিঙ্ক রয়েছে৷
একটি বিদ্যমান খণ্ডে স্থানিক প্যানেল এবং অরবিটার যোগ করতে একটি ComposeView ব্যবহার করুন
Composables যোগ করতে এবং নতুন XR সামগ্রী তৈরি করতে আপনার XML লেআউটে একটি ComposeView
ব্যবহার করুন। onCreateView
ফাংশনে ComposeView
কল করতে [ ViewBinding
][ViewBinding] ব্যবহার করুন।
ComposeView
নির্দেশিকা সম্পর্কে আরও পড়ুন ।
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val view = inflater.inflate(R.layout.fragment_first, container, false)
val composeView = view.findViewById<ComposeView>(R.id.compose_view)
composeView.apply {
// Dispose of the Composition when the view's LifecycleOwner
// is destroyed
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
setContent {
// In Compose world
Orbiter(
position = Edge.Top,
offset = 10.dp,
alignment = Alignment.End
) {
SpatialPanel(SubspaceModifier.height(500.dp).width(500.dp)) {
Text("Spatial Panel with Orbiter")
}
}
}
return view
}
}
জেটপ্যাক সিনকোর লাইব্রেরির সাথে সরাসরি কাজ করুন
XR-এর জন্য কম্পোজ জেটপ্যাক সিনকোরের উপরে তৈরি করা হয়েছে। আপনি যদি একটি ভিউ ভিত্তিক অ্যাপকে স্থানান্তরিত করে থাকেন, তাহলে আপনি XR-এর জন্য রচনার মধ্যে আপনার বিদ্যমান UI কোড ব্যবহার করা চালিয়ে যেতে পারেন বা এর পরিবর্তে Jetpack SceneCore-এর Session
সাথে সরাসরি কাজ করা বেছে নিতে পারেন।
আপনি PanelEntity
ব্যবহার করে SceneCore থেকে সরাসরি প্যানেল তৈরি করতে পারেন। উপাদানগুলি ব্যবহার করে প্যানেলগুলিকে চলমান বা পরিবর্তনযোগ্য করুন৷ আরও তথ্যের জন্য, সত্তাগুলিতে সাধারণ আচরণ যুক্ত করুন দেখুন।
val panelContent = MyCustomView(this)
val panelEntity = xrSession.createPanelEntity(
panelContent,
surfaceDimensionsPx = Dimensions(500f,500f,500f),
dimensions = Dimensions(1f,1f,1f),
name = "panel entity"
)