השימוש במסגרת Android Jetpack Compose הוא הדרך הטובה ביותר לנצל את השיפורים האחרונים בפיתוח ממשקי משתמש של Android, ולוודא שהאפליקציה שלכם עדכנית בהתאם לשיטות המומלצות בתחום.
שימוש חוזר בתצוגות הקיימות ב-SpatialPanels
SpatialPanel
s הם חלק מהספרייה של Jetpack Compose for XR, אבל הם יכולים לקבל גם תצוגות. כשמשתמשים ב-Subspace
ב-MainActivity, צריך להציב תצוגה קיימת ב-SpatialPanel
, כפי שמתואר בדוגמה הבאה.
setContent { Subspace { SpatialPanel( modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp) ) { MyCustomView(this@ActivityWithSubspaceContent) } } }
שימוש בממשקי API של Android Views ו-Compose לתאימות הדדית
הנחיות בנושא יכולת פעולה הדדית בין Views לבין Compose במסמך הזה מוסבר איך משתמשים בפלטפורמות האלה יחד, ויש בו קישורים לדוגמי קוד שאפשר להשתמש בהם.
שימוש ב-ComposeView כדי להוסיף לקטעים קיימים חלוניות מרחביות ורכיבי Orbiter
משתמשים ב-ComposeView
בפריסה של ה-XML כדי להוסיף רכיבי Composables וליצור תוכן XR חדש. משתמשים בקישור תצוגה או ב-findViewById
כדי למצוא את ComposeView
בפונקציה onCreateView()
.
מידע נוסף על ההנחיות בנושא 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. אם אתם מפתחים אפליקציה מבוססת-תצוגה תלת-ממדית, תוכלו להמשיך להשתמש בקוד הממשק המשתמש הקיים ב-Compose for XR, או לעבוד ישירות עם Session
של Jetpack SceneCore.
אפשר ליצור לוחות ישירות מ-SceneCore באמצעות PanelEntity
. מגדירים את גודל הלוח במטרים באמצעות Dimensions
, או בפיקסלים באמצעות PixelDimensions
. אתם יכולים להשתמש ברכיבים המתאימים כדי להפוך את הלוחות לניתנים להזזה או לשינוי גודל. מידע נוסף זמין במאמר הוספת התנהגות משותפת לישויות.
val panelContent = MyCustomView(this) val panelEntity = PanelEntity.create( session = xrSession, view = panelContent, pixelDimensions = PixelDimensions(500, 500), name = "panel entity" )