‫Jetpack Compose for XR

ליצור באופן הצהרתי פריסות מרחביות של ממשק משתמש שמנצלות את היכולות המרחביות של Android XR.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫24 בספטמבר 2025 - - - ‎1.0.0-alpha07

הצהרה על יחסי תלות

כדי להוסיף תלות ב-XR Compose, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.

מוסיפים את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

Groovy

dependencies {
    implementation "androidx.xr.compose:compose:1.0.0-alpha07"

    // Use to write unit tests
    testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha07"
}

Kotlin

dependencies {
    implementation("androidx.xr.compose:compose:1.0.0-alpha07")

    // Use to write unit tests
    testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha07")
}

מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ב-build.

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע מכם אם תגלו בעיות חדשות או אם יש לכם רעיונות לשיפור הספרייה הזו. לפני שיוצרים ספרייה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להוסיף את ההצבעה שלכם לבעיה קיימת, לוחצים על לחצן הכוכב.

יצירת בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא כלי המעקב אחר בעיות.

גירסה 1.0

גרסה 1.0.0-alpha07

‫24 בספטמבר 2025

הגרסאות androidx.xr.compose:compose:1.0.0-alpha07 וandroidx.xr.compose:compose-testing:1.0.0-alpha07 יוצאות לאור. גרסה 1.0.0-alpha07 מכילה את הקומטים האלה.

שינויים ב-API

  • שיפרנו את מסמכי KDocs עבור SpatialMainPanel. (I27b70, ‏ b/444467891)
  • הוספנו את SpatialArrangement לסידור של רכיבי צאצא לאורך הציר הראשי בפריסות תלת-ממדיות כמו SpatialRow ו-SpatialColumn. ממשק ה-API החדש הזה מספק אפשרויות מוכרות לסידור התצוגה מ-2D Compose, כולל Start,‏ End,‏ Center,‏ SpaceBetween,‏ SpaceAround ו-SpaceEvenly, עם תמיכה מלאה בפריסות משמאל לימין ומימין לשמאל. (I7db38, b/436289959)
  • הוספנו ממשק בסיסי ל-SubspaceModifier.Node כדי לשפר את בטיחות הסוגים ואת נוחות השימוש בממשקי הרחבות, כמו
    • CompositionLocalConsumerSubspaceModifierNode
    • LayoutCoordinatesAwareModifierNode
    • SubspaceLayoutModifierNode
    • CoreEntityNode (internal) (Iede00, b/440599394, b/440599394)
  • ביטול ההגבלה SpatialExternalSurface (I33315, b/439646773)
  • הוספת SubspaceModifier לרכיבים הניתנים להרכבה של Subspace והחלפת פרמטר האילוצים SubspaceModifier בפרמטר SubspaceModifiers שקשור לגודל. אם allowUnboundedSubspace מוגדר כ-True, עדיין יכולות להיות הגבלות לא מוגבלות במרחבים משניים. (Ib06e6, b/433331675)
  • הוצאנו משימוש את SubspaceModifiers שאפשר להזיז ולשנות את הגודל שלה, ועכשיו DragPolicy() ו-ResizePolicy() הם חלק מממשקי SpatialPanel ו-SpatialExternalSurface API‏ (I397bf,‏ b/437924639)
  • נוספה תמיכה ב-LayoutDirection בפריסות מרחביות. השימוש ב-SpatialAlignment יאפשר עכשיו למקם רכיבים בצורה נכונה בהקשרים של כתיבה מימין לשמאל ומשמאל לימין. (I964bb, ‏ b/436300273)
  • מוסיפים פרמטרים של שינוי גודל והזזה לממשקי ה-API של Panel כדי לוודא שאפשר להחיל את ההתנהגויות האלה רק על מאגרי נתונים נתמכים. (Id491c)
  • הוספנו את המאפיינים sizeIn, ‏ widthIn, ‏ heightIn, ‏ depthIn ו-SubspaceModifiers שמאפשרים להגדיר אילוצים מדויקים של מינימום ומקסימום לרוחב, לגובה ולעומק. (I1af09, b/433330761)

גרסה 1.0.0-alpha06

‫13 באוגוסט 2025

הגרסאות androidx.xr.compose:compose:1.0.0-alpha06 וandroidx.xr.compose:compose-testing:1.0.0-alpha06 יוצאות לאור. גרסה 1.0.0-alpha06 מכילה את הקומטים האלה.

תיקוני באגים

  • יצירה מחדש של ComposeXrOwnerLocals כשהבעלים של מחזור החיים מושמד. (9123ce1)

גרסה 1.0.0-alpha05

‫30 ביולי 2025

הגרסאות androidx.xr.compose:compose:1.0.0-alpha05 וandroidx.xr.compose:compose-testing:1.0.0-alpha05 יוצאות לאור. גרסה 1.0.0-alpha05 מכילה את הקומטים האלה.

תכונות חדשות

  • הגדרתי את סיווג ההערות SubspaceComposable כגלוי לכולם. (Ic2a34, b/399432430)
  • שני רכיבי SpatialExternalSurface חדשים שניתן להרכבה שמייצגים כדורים של 180 ו-360 מעלות. (I40ef2, ‏ b/391705799)
  • נוספו SubspaceModifier.aspectRatio (Ide5ab, ‏ b/399729509, ‏ b/414762147)
  • הוספנו את SceneCoreEntity API כדי לשפר את יכולת הפעולה ההדדית בין SceneCore לבין Compose for XR. (I50bb3, b/423020989)
  • הוספנו GravityAlignedsubspace API לתמיכה בתכונה 'ללא שינוי גודל' ובתכונה GravityAligned (I07359)

שינויים ב-API

  • SpatialDialog() יפעל לפי הגדרת הלחיצה של SpatialDialogProperties.dismissOnBack. (Ib453b, ‏ b/416797132)
  • העדכון של minimumPanelDimension לגודל ברירת מחדל חדש של Dimensions(0.1f, 0.1f, 0.1f), בגלל הייצוג שלו במטרים. (Ib852a)
  • מרחבים משניים ולוויינים ישמרו עכשיו את המצב הפנימי שלהם במרחב הבית וכשהאפליקציה פועלת ברקע. במצב 'תצוגה מצומצמת', עדיין תוגדר הסצנה ב-Subspace לקראת המעבר למצב 'תצוגה מורחבת'. (I40317, ‏ b/416037751)
  • מעכשיו, SpatialDialogs ישמרו את המצב שלהם כשהאפליקציה פועלת ברקע. (I6aa56)
  • המכשיר ApplicationSubspace יקבל עכשיו מהמערכת את המיקום והקנה מידה המומלצים שלו. (I4565f, b/418834194)
  • הוספנו הודעת שגיאה טובה יותר והפעלנו את השגיאה מוקדם יותר כשמשתמשים ב-SubspaceComposable בהקשר שאינו SubspaceComposable. ‫(Iee2ae, ‏ b/416484684)
  • העדכון של ExperimentalSubspaceVolumeApi מאזהרה לשגיאה נובע מכך שפעמים רבות מתעלמים מאזהרות כשמשתמשים ב-API שאפשר להרכיב בצורה לא נכונה. (I427aa, ‏ b/424864286)
  • הגישה ל-Subspace ול-ApplicationSubspace מוגבלת עכשיו על ידי recommendedContentBoxInFullSpace. בעבר, היא הוגבלה על ידי שדה הראייה של SpatialUser. (I41015, ‏ b/423074142)
  • עדכון SpatialElevation לשימוש בגודל מינימלי כדי להפסיק להשתמש בגודל שמוגדר בהארד קוד (I2dbe6, ‏ b/427785338)
  • עדכון של אופן ההקרנה של SpatialAcitivityPanel כדי שהעדכון יתבצע כשמשנים משתנה מרכזי. (I0f64d, b/427999029)
  • מומלץ להסיר את VolumeConstraints.Unbounded ולהגדיר את ערכי ברירת המחדל של האילוץ לערך המקביל. (Ie24ec, b/407938414)
  • התוכן של SpatialFeatheringSize כבר לא ציבורי (I1c15b, b/399432430)
  • שינינו את השם של XR Placeable ל-SubspacePlaceable כדי להבדיל אותו מ-Placeable של Compose. (I74874)
  • הסרת ההגדרות של Orbiter והוספת shouldRenderInNonSpatial כפרמטר חדש. בנוסף, הסרנו את המחלקה EdgeOffset והוספנו את orbiterOffsetType כפרמטר חדש כדי לאחד את הפונקציות Orbiter(). וגם שינית את השם של OrbiterEdge ל-ContentEdge. (Iebf3d)
  • השם של Measurable שונה ל-SubspaceMeasurable כדי להבדיל בין הסוג הזה לבין הסוג Measurable של Compose. (I9726c)
  • שינוי השם של MeasureResult ל-SubspaceMeasureResult (I9f34d)
  • הסרנו את setSubspaceContent API לטובת שימוש ב-setContent של Compose עם קומפוזבילי Subspace. ‫(Ifff4c, ‏ b/421427391, ‏ b/421427391)
  • השם של MeasurePolicy השתנה לSubspaceMeasurePolicy. ‫(I37a9b, b/422553904)
  • הפוך את SubspaceSemanticsInfo לממשק אטום כי לא נוכל להוסיף חברים בלי ברירות המחדל. (I372f9, ‏ b/423704068)
  • עדכון התיעוד של SpatialExternalSurface, שינוי השם של ContentSecurityLevel ל-SurfaceProtection (I3c460, ‏ b/420982808)
  • נוסף constructor עם עומס יתר לשינוי movable, שמאפשר הצמדה. (Ic0c70)
  • הוספנו עוד ספק מיקום לתיאורי הכלים, כך שעכשיו מפתחים יכולים לקבוע אם תיאור הכלי יוצב מעל, מתחת, משמאל או מימין לנקודת העיגון. הוספנו API שמקבל צורה של חץ, כדי שאפשר יהיה לספק יותר צורות מותאמות אישית. (Ie513c, b/374766087, b/418854637)
  • הוסר CoreEntity כPublishedApi (Ifee05)

תיקוני באגים

  • תוקנה בעיה שבה הסמל SpatialDialog הבהב בזמן העיבוד. (Ife73c, b/401619909)
  • תוקנה בעיה שגרמה לכך שלא ניתן היה להשתמש ב-SpatialDialog כדי להסתיר את חלונית הפעילות. (I8ca6c, b/367442109)
  • תוקנה בעיה שגרמה לכך שחלק מהתוכן לא הוצג בתיבת הדו-שיח של XR (I17cd5, ‏ b/418062437)
  • תוקנה הבעיה שבה חלון ההודעה SpatialPopup נסגר כשלוחצים בתוך התוכן. ‫(If262c, b/417245722)
  • תוקנה הבעיה שבה כשמשלבים resizable().movable(), גודל החלונית Spatial לא משתנה לגודל החדש. ‪(I02ee3, b/422264230)
  • תוקנה בעיה שבה topBar חופף לתפריט ב-SpatialComposeVideoPlayer (Id33bc, ‏ b/427168167)
  • רדיוס פינה קבוע לא מוצג (I975fe, b/428261830)

גרסה 1.0.0-alpha04

‫7 במאי 2025

הגרסאות androidx.xr.compose:compose:1.0.0-alpha04 וandroidx.xr.compose:compose-testing:1.0.0-alpha04 יוצאות לאור. גרסה 1.0.0-alpha04 מכילה את הקומטים האלה.

תכונות חדשות

  • נוסף ממשק CompositionLocalConsumerSubspaceModifierNode כדי לאפשר לסוגים מותאמים אישית של SubspaceModifier לגשת לערכים מקומיים של קומפוזיציה.
  • הוספנו API חדש,‏ SpatialPanel, שפועל לפי סגנון ההטמעה של AndroidView, והוצאנו משימוש את ViewBased SpatialPanel הקודם.
  • נוסף אובייקט נלווה VolumeConstraints.Unbounded שמייצג אילוצים לא מוגבלים.
  • נוספה SubspaceModifier.onPointSourceParams כדי לאפשר מקור אודיו מרחבי.
  • נוסף ApplicationSubspace ציבורי, עם אפשרות VolumeConstraints להגדיר אזור תלת-ממדי שבו האפליקציה יכולה להציג תוכן מרחבי. כברירת מחדל, אם לא מציינים אילוצים, המרחב המשני יהיה מוגבל על ידי שדה הראייה הנוכחי של SpatialUser ברוחב ובגובה. המשתמשים יכולים לספק אילוצים לשימוש במקרים שבהם לא ניתן לקבוע את שדה הראייה. אחרת, נעשה שימוש בערכי ברירת המחדל של רוחב וגובה שדה הראייה.
  • נוספה התכונה SpatialExternalSurface, שאפשר להשתמש בה כדי להציג תוכן סטריאוסקופי. אפשר להתאים אישית את SpatialExternalSurface באמצעות משנים (חוץ מאלפא) ואפקט טשטוש קצוות.
  • נוסף pointerHoverIcon Subspace Modifier חדש שמאפשר למשתמשים להגדיר את הסמל של המצביע המרחבי.

שינויים ב-API

  • ההגבלה RequiresApi(34) הוסרה מכל חבילות Jetpack XR. המגבלה הזו הייתה מיותרת כי Jetpack XR זמין כרגע רק במכשירים עם רמת API‏ 34 ומעלה. (Iae0f8)
  • כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP בגרסה 2.0.0 ומעלה. (Idb6b5)
  • הטיפול בפעולת החזרה יפעל עכשיו בחלוניות מרחביות ללא פעילויות מוטמעות. כדי שהטיפול בפעולת החזרה יפעל, צריך לציין android:enableOnBackInvokedCallback="true" במניפסט של Android.
  • מעכשיו אפשר להשתמש בתכונה 'הקודם' בתיבות דו-שיח מרחביות. כדי שהטיפול בפעולת החזרה יפעל, צריך לציין את android:enableOnBackInvokedCallback="true" במניפסט של Android.
  • רכיבי SpatialPanel מבוססי-Compose ומבוססי-View יכולים עכשיו לשנות את הגודל שלהם בהתאם לתוכן שלהם.
  • מפתחים יכולים עכשיו להגדיר ערכי SpatialElevationLevel מותאמים אישית משלהם, והם לא מוגבלים לרמות המוגדרות מראש.
  • עכשיו אפשר להתאים אישית את רמת הגובה של Orbiter באמצעות הפרמטר elevation.
  • מעכשיו, כברירת מחדל, אפשר להגביל את המרחב המשני לפי שדה הראייה של SpatialUser ברוחב ובגובה. אם אי אפשר לקבוע את שדה הראייה, המערכת משתמשת בערכי ברירת המחדל של הרוחב והגובה של שדה הראייה.
  • נוספו קריאות חוזרות חדשות onMoveStart ו-onMoveEnd לשינוי Movable. הקריאות החוזרות (callbacks) onMoveStart ו-onMoveEnd מופעלות כשהמשתמש מתחיל ומסיים להזיז את המרחב המשנה שניתן להרכבה עם שינוי המיקום.
  • הפרמטר name הוסר מממשקי API מרחביים כמו SpatialRow ו-SpatialPanel. לניפוי באגים בעצים של קומפוזיציה מרחבית, משתמשים במקום זאת ב-SubspaceModifier.testTag.
  • הוסרה עומס יתר לא נתמך של SpatialPopup שיש לו רק spatialElevationLevel ו-content. צריך להשתמש בממשק שתומך ב-onDimissRequest.
  • ההחזרה (callback) של onPoseChange מהמשנה (modifier) הניתן להזזה הוסרה. במקום זאת, אתם צריכים להשתמש ב-onMove.
  • SubspaceModifiers לא יחולו יותר אם הן מנותקות או בתהליך ניתוק.
  • ממשק ה-API הקיים של SpatialRow פוצל ל-SpatialRow ול-SpatialCurvedRow. אם השתמשתם בעבר בפרמטר curveRadius של SpatialRow, עכשיו צריך להשתמש בפרמטר SpatialCurvedRow במקום, כי הוא מציע את אותה התנהגות.
  • ל-MainPanel ול-ActivityPanel כבר אין סרגלי כותרת כשמריצים אותן על קובץ אימג' של מערכת עדכנית דומה.
  • עכשיו אפשר להשתמש בכמה משני אלפא ומשני גודל ביחד, והערכים שלהם יוכפלו כדי לקבל את ערך האלפא או הגודל הסופי.
  • התקשרות חזרה (callback) משינוי המיקום של המיקום הניתן לשינוי עברה אופטימיזציה כדי לאפשר תנועה חלקה יותר של התנוחה.onPoseChange
  • השינויים במצב יפעילו עכשיו את ההרכבה מחדש, כי הפונקציות של שינוי הגודל והמיקום יפעלו ב-callback בשרשור הראשי.
  • הוספנו מעקב אחרי מצב בשלבי הפריסה והמדידה כדי לוודא ששינויים במצב ב-SubspaceLayout יפעילו פריסה מחדש.
  • עדכנו את שרשרת שינויי המחירים שעברה אופטימיזציה כדי לשפר את השימוש החוזר בשינויי מחירים קיימים.

תיקוני באגים

  • הפסקת ההצללה כשמוצג SpatialDialog. (Ic4594)
  • בקשות לשינוי פריסה שנשלחות בזמן שצמתי שינוי מנותקים יקבלו מעכשיו התעלמות.
  • הוסרו שלבי פריסה מחדש שהופעלו על ידי משנים מסוג Movable ו-Resizable.
  • תוקנה קריסה ב-MainPanel() composable שהתרחשה כששני המאפיינים הוגדרו לאפס, באופן ישיר או במהלך חישוב פריסה, למשל חישוב של SpatialRow/SpatialColumn. החלונית תוסתר במקום זאת. שימו לב שהתיקון הזה מתייחס ספציפית לקריסות במהלך שלב הפריסה. שינוי הגודל של החלונית לאפס באמצעות אינטראקציה עם המשתמש יטופל בנפרד. לחלונית המוסתרת חסרים רכיבי ממשק משתמש.
  • תוקנה בעיה שקשורה ל-maintainAspectRatio מהמשנה resizable. יחס הגובה-רוחב אמור להישמר עכשיו.
  • תוקנה בעיה במרחבים משניים מוטמעים שבה הם ממוקמים בצורה שגויה בפריים בודד.
  • תוקנה הבעיה שבה פינות מעוגלות לא הוחלו לפעמים כשהיה צריך להחיל אותן.
  • המסגרת של NestedSubspaces לא תופיע יותר במיקום הלא נכון.

גרסה 1.0.0-alpha03

‫26 בפברואר 2025

הגרסאות androidx.xr.compose:compose:1.0.0-alpha03 ו-androidx.xr.compose:compose-testing:1.0.0-alpha03 הושקו ללא שינויים משמעותיים מאז גרסת האלפא האחרונה. גרסה 1.0.0-alpha03 מכילה את הקומטים האלה

גרסה 1.0.0-alpha02

‫12 בפברואר 2025

הגרסאות androidx.xr.compose:compose:1.0.0-alpha02 וandroidx.xr.compose:compose-testing:1.0.0-alpha02 יוצאות לאור. גרסה 1.0.0-alpha02 מכילה את ההתחייבויות האלה.

תכונות חדשות

  • עכשיו, כשמפעילים את התכונה 'דיאלוג מרחבי', אפשר להסתיר את התוכן של חלונית הפעילות.
  • אפשר להשתמש עכשיו ב-Orbiter API בהקשרים של SubspaceComposable, והוא יצרף את ה-Orbiters ליחידת ההורה הקרובה ביותר שניתנת להרכבה ומבוססת על SubspaceLayout.
  • הוספנו את LayoutCoordinatesAwareModifierNode כדי לאפשר שינויים מותאמים אישית שמבוססים על מיקום.
  • נוספו שיטות מחזור חיים של צירוף/ניתוק ל-SubspaceModifier.Node.
  • הוספתם את scaleWithDistance לערך הקבוע שניתן להזזה. כשהאפשרות scaleWithDistance מופעלת, הרכיב של המרחב המשני שמועבר יגדל או יקטן. הוא גם ישמור על כל סולם מפורש שהיה לו לפני ההעברה.

שינויים ב-API

  • הסרנו את SessionCallbackProvider לטובת SpatialCapabilities.

שינויים אחרים

  • הורדנו את minSDK ל-24. כל ממשקי Jetpack XR API עדיין דורשים API ברמה 34 בזמן הריצה.
  • הקונסטרקטורים Orbiter EdgeOffset.inner,‏ EdgeOffset.outer ו-EdgeOffset.overlap הם כבר לא מתודות של @Composable, ולכן אפשר להשתמש בהם בהקשרים שאינם ניתנים להרכבה.
  • עדכון של רמות הגובה המרחביות בהתאם למפרט חוויית המשתמש העדכני.
  • הטמעת הממשק SubspaceSemanticsInfo ב-MeasurableLayout.
  • השם של SubspaceModifierElement שונה ל-SubspaceModifierNodeElement.

תיקוני באגים

  • תיקונים לשיפור היציבות של הזמנות ב-SubspaceModifier. SubspaceModifier אמור להתנהג בצורה מהימנה יותר. עכשיו אפשר להשתמש במקשי התיקון Offset,‏ rotate,‏ scale,‏ movable ו-resizable בכל סדר.

גרסה 1.0.0-alpha01

‫12 בדצמבר 2024

androidx.xr.compose:compose-*1.0.0-alpha01 משוחרר.

תכונות של הגרסה הראשונית

  • גרסת פיתוח ראשונית של Jetpack Compose for XR. אפשר להשתמש במושגים מוכרים מ-Compose, כמו שורות ועמודות, כדי ליצור פריסות מרחביות של ממשקי משתמש ב-XR, בין אם אתם מעבירים אפליקציית דו-ממד קיימת ל-XR או יוצרים אפליקציית XR חדשה מאפס. הספרייה הזו מספקת רכיבים מרחביים ורכיבים שניתנים להרכבה במרחב: כמו חלוניות מרחביות ורכיבי Orbiters, שמאפשרים לכם למקם את ממשק המשתמש הקיים שלכם מבוסס-Views או מבוסס-Compose דו-ממדי בפריסה מרחבית. הוא כולל את רכיב המשנה Volume, שמאפשר למקם ישויות של SceneCore, כמו מודלים תלת-ממדיים, ביחס לממשק המשתמש. מידע נוסף זמין במדריך למפתחים:

    • Subspace: אפשר למקם את הקומפוזיציה הזו בכל מקום בהיררכיית ממשק המשתמש של האפליקציה, וכך לשמור על פריסות לממשק משתמש דו-ממדי ומרחבי בלי לאבד את ההקשר בין הקבצים. כך קל יותר לשתף דברים כמו ארכיטקטורת אפליקציה קיימת בין XR ובין גורמי צורה אחרים, בלי להעביר את המצב דרך כל עץ ממשק המשתמש או לשנות את הארכיטקטורה של האפליקציה.

    • SpatialPanel: חלונית מרחבית היא רכיב הניתן להרכבה במרחב משנה, שמאפשר להציג תוכן של אפליקציה – למשל, אפשר להציג הפעלת סרטון, תמונות סטילס או כל תוכן אחר בחלונית מרחבית.

    • אורביטר: רכיב בממשק המשתמש שמוצג במרחב. הוא מיועד לצירוף לחלונית מרחבית תואמת, ומכיל פריטי ניווט ופעולות הקשריות שקשורות לחלונית המרחבית הזו. לדוגמה, אם יצרתם חלונית תלת-ממדית להצגת תוכן וידאו, תוכלו להוסיף לחלונית כפתורי הפעלה של הווידאו.

    • נפח: מיקום ישויות SceneCore, כמו מודלים תלת-ממדיים, ביחס לממשק המשתמש.

  • פריסה מרחבית: אפשר ליצור כמה חלונות מרחביים ולמקם אותם בפריסה מרחבית באמצעות SpatialRow, SpatialColumn, SpatialBox ו-SpatialLayoutSpacer. משתמשים ב-SubspaceModifiers כדי להתאים אישית את הפריסה.

  • רכיבי ממשק משתמש מרחביים: אפשר לעשות שימוש חוזר באלמנטים האלה בממשק המשתמש הדו-ממדי, והמאפיינים המרחביים שלהם יהיו גלויים רק כשמפעילים את היכולות המרחביות.

    • SpatialDialog: החלונית תזוז מעט אחורה בעומק כדי להציג תיבת דו-שיח מוגבהת.
    • SpatialPopUp: החלונית תזוז מעט אחורה בעומק בציר Z כדי להציג חלון קופץ מוגבה
    • SpatialElevation: אפשר להגדיר את SpatialElevationLevel להוספת גובה.
  • ‫SpatialCapabilities: היכולות המרחביות יכולות להשתנות כשהמשתמשים יוצרים אינטראקציה עם האפליקציה או עם המערכת, או אפילו להשתנות על ידי האפליקציה עצמה – למשל, מעבר למרחב הבית או למרחב מלא. כדי להימנע מבעיות, האפליקציה צריכה לבדוק אם יש LocalSpatialCapabilities.current כדי לקבוע אילו ממשקי API נתמכים בסביבה הנוכחית. ‫isSpatialUiEnabled: Spatial UI elements (e.g. SpatialPanel) ‫isContent3dEnabled: 3D objectsisAppEnvironmentEnabled: The environmentisPassthroughControlEnabled: Whether or not the application can control the passthrough state ‫isSpatialAudioEnabled: Spatial audio

בעיות מוכרות

  • נכון לעכשיו, נדרשת גרסת minSDK‏ 30 כדי להשתמש ב-Jetpack Compose for XR. כפתרון עקיף, אפשר להוסיף את רשומת המניפסט הבאה <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> כדי לבצע build ולהפעיל עם minSDK של 23.
  • כדי להשתמש באפליקציות Jetpack XR, צריך לבקש הרשאה android.permission.SCENE_UNDERSTANDING ב-AndroidManifest.
  • כשמפעילים אפליקציה ישירות במרחב מלא באמצעות המאפיין PROPERTY_XR_ACTIVITY_START_MODE במניפסט שלה, הפעילויות או האפליקציות נפתחות בהתחלה במרחב הבית לפני שהן עוברות למרחב מלא.
  • יכול להיות שקובצי glTF ברכיבים קומפוזביליים של נפח יהבהבו בהתחלה במיקום הלא נכון.
  • שימוש ב-SpatialDialog בחלונית שהוזזה באופן משמעותי ידחוף את התוכן בכיוון הלא נכון.