השימוש במסגרת Android Jetpack Compose הוא הדרך הטובה ביותר לנצל את השיפורים האחרונים בפיתוח ממשקי המשתמש של Android, ולוודא שהאפליקציה שלכם תמיד תהיה עדכנית בהתאם לשיטות המומלצות בתחום.
שימוש חוזר בתצוגות הקיימות ב-SpatialPanels
SpatialPanel
s הם חלק מהספרייה של Jetpack Compose for XR, אבל הם יכולים לקבל גם תצוגות. כשמשתמשים ב-setSubspaceContent()
ב-MainActivity, צריך להציב תצוגה קיימת ב-SpatialPanel
, כפי שמתואר בדוגמה הבאה.
setSubspaceContent { SpatialPanel( modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp) ) { MyCustomView(this) } }
שימוש בממשקי 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" )