Android Jetpack Compose फ़्रेमवर्क का इस्तेमाल करके, Android यूज़र इंटरफ़ेस (यूआई) डेवलपमेंट में हुई नई तरक्कियों का फ़ायदा लिया जा सकता है. साथ ही, यह पक्का किया जा सकता है कि आपका ऐप्लिकेशन, इंडस्ट्री के सबसे सही तरीकों के मुताबिक बना रहे.
हालांकि, अगर आपने माइग्रेट नहीं किया है और Android व्यू पर आधारित ऐप्लिकेशन को स्पेसलाइज़ करने की कोशिश की जा रही है, तो इसके लिए कुछ तरीके अपनाए जा सकते हैं.
SpatialPanels में अपने मौजूदा व्यू का फिर से इस्तेमाल करना
SpatialPanel
, XR के लिए बनी Jetpack Compose लाइब्रेरी का हिस्सा हैं. हालांकि, इनमें व्यू भी शामिल किए जा सकते हैं. अपनी MainActivity में setSubspaceContent
का इस्तेमाल करते समय, किसी मौजूदा व्यू को SpatialPanel
में डालें, जैसा कि इस उदाहरण में दिखाया गया है.
setSubspaceContent {
SpatialPanel(
view = MyCustomView(this),
modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp)
)
}
Android व्यू और Compose के इंटरऑपरेबिलिटी एपीआई का इस्तेमाल करना
व्यू और Compose के बीच इंटरऑपरेबिलिटी के बारे में दिशा-निर्देश देखें. इस दस्तावेज़ में, इन फ़्रेमवर्क को एक साथ इस्तेमाल करने के बारे में बताया गया है. साथ ही, इसमें कोड के ऐसे सैंपल के लिंक भी शामिल हैं जिनका इस्तेमाल किया जा सकता है.
किसी मौजूदा फ़्रैगमेंट में स्पेस पैनल और ऑर्बिटर जोड़ने के लिए, ComposeView का इस्तेमाल करना
अपने एक्सएमएल लेआउट में ComposeView
का इस्तेमाल करके, कॉम्पोज़ेबल जोड़ें और नया XR कॉन्टेंट बनाएं. 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
}
}
सीधे Jetpack SceneCore लाइब्रेरी के साथ काम करना
Compose for XR, Jetpack
SceneCore के आधार पर बनाया गया है. अगर आपको Views पर आधारित ऐप्लिकेशन को स्पेसिएलाइज़ करना है, तो Compose for XR में अपने मौजूदा यूज़र इंटरफ़ेस (यूआई) कोड का इस्तेमाल जारी रखा जा सकता है. इसके अलावा, सीधे तौर पर 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"
)