আগে থেকে থাকা Android Views-ভিত্তিক অ্যাপের জন্য স্পেশিয়াল UI তৈরি করা

প্রযোজ্য XR ডিভাইস
এই নির্দেশিকা আপনাকে এই ধরনের XR ডিভাইসের জন্য অভিজ্ঞতা তৈরি করতে সাহায্য করে।
XR হেডসেট
তারযুক্ত XR গ্লাস

Android UI ডেভেলপমেন্টের লেটেস্ট উন্নতির সুবিধা নিতে এবং আপনার অ্যাপ্লিকেশনটি ইন্ডাস্ট্রির পেশাদার পদ্ধতির সাথে আপ-টু-ডেট আছে কিনা তা যাচাই করার জন্য Android Jetpack Compose ফ্রেমওয়ার্ক ব্যবহার করা হল সবচেয়ে ভালো উপায়।

তবে, আপনি যদি মাইগ্রেট না করে থাকেন এবং Android Views ভিত্তিক অ্যাপ স্পেশিয়ালাইজ করার জন্য কাজ করেন, তাহলে আপনি কয়েকটি পদ্ধতি অনুসরণ করতে পারেন।

SpatialPanels-এর মধ্যে আপনার আগে থেকে থাকা ভিউ আবার ব্যবহার করুন

SpatialPanel হল XR লাইব্রেরির জন্য Jetpack Compose-এর অংশ, এটি ভিউও গ্রহণ করে। আপনার MainActivity-তে Subspace ব্যবহার করার সময়, নিচে দেখানো উদাহরণের মতো, আগে থেকে থাকা ভিউকে SpatialPanel-এ প্লেস করুন।

setContent {
    Subspace {
        SpatialPanel(
            modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp)
        ) { MyCustomView(this@ActivityWithSubspaceContent) }
    }
}

Android Views এবং Compose ইন্টারঅপারেবিলিটি API ব্যবহার করা

Views ও Compose-এর মধ্যে ইন্টারঅপারেবিলিটি সংক্রান্ত নির্দেশিকা দেখুন। এই ডকুমেন্টেশনে একসাথে এইসব ফ্রেমওয়ার্ক ব্যবহার করার বিষয়ে আলোচনা করা হয়েছে এবং এতে কোড স্যাম্পেলের লিঙ্ক রয়েছে যা আপনি ব্যবহার করতে পারবেন।

আগে থেকে থাকা ফ্র্যাগমেন্টে স্পেশিয়াল প্যানেল ও অরবিটার যোগ করতে ComposeView ব্যবহার করুন

Composables যোগ করতে এবং নতুন XR কন্টেন্ট তৈরি করতে আপনার XML লেআউটে ComposeView ব্যবহার করুন। onCreateView() ফাংশনে ComposeView খুঁজতে View binding বা findViewById ব্যবহার করো।

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
}

Jetpack SceneCore লাইব্রেরির সাথে সরাসরি কাজ করুন

Compose for XR, Jetpack SceneCore-এর উপরে তৈরি করা হয়েছে। আপনি যদি Views ভিত্তিক অ্যাপ স্পেশিয়ালাইজ করেন, তাহলে Compose for XR-এর মধ্যে আপনার আগে থেকে থাকা UI কোড ব্যবহার করা চালিয়ে যেতে পারেন অথবা এর পরিবর্তে সরাসরি Jetpack SceneCore-এর Session-এর সাথে কাজ করার বিকল্প বেছে নিতে পারেন।

আপনি PanelEntity ব্যবহার করে SceneCore থেকে সরাসরি প্যানেল তৈরি করতে পারবেন। dimensions ব্যবহার করে মিটারে অথবা pixelDimensions ব্যবহার করে পিক্সেলে প্যানেলের সাইজ সেট করুন। আপনি সংশ্লিষ্ট কম্পোনেন্ট ব্যবহার করে প্যানেলগুলি সরানো বা ছোট বড় করার বিকল্প বেছে নিতে পারেন। আরও তথ্যের জন্য, এনটিটিতে সাধারণ আচরণ যোগ করুন দেখুন।

val panelContent = MyCustomView(this)
val panelEntity = PanelEntity.create(
    session = xrSession,
    view = panelContent,
    pixelDimensions = IntSize2d(500, 500),
    name = "panel entity"
)