Jetpack Compose for XR
| 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| 2026 年 3 月 25 日 | - | - | - | 1.0.0-alpha12 |
依存関係の宣言
XR Compose への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリ をご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.xr.compose:compose:1.0.0-alpha12" // Use to write unit tests testImplementation "androidx.xr.compose:compose-testing:1.0.0-alpha12" }
Kotlin
dependencies { implementation("androidx.xr.compose:compose:1.0.0-alpha12") // Use to write unit tests testImplementation("androidx.xr.compose:compose-testing:1.0.0-alpha12") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.0
バージョン 1.0.0-alpha12
2026 年 3 月 25 日
androidx.xr.compose:compose:1.0.0-alpha12 と androidx.xr.compose:compose-testing:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit については、こちらをご覧ください。
API の変更
SpatialGltfModelAPI とSpatialGltfModelAnimationAPI を追加して、glTF をレンダリングし、アニメーションを制御できるようにしました。SpatialGltfModelStateをAutoCloseableに変更しました。リソースを解放するには、閉じる必要があります。(I11fde、b/466065486、b/481379924)ただし、SpatialGltfModelAPI は、追加のテストが完了するまで、このリリースでは制限付きとしてマークされています。(Ibf003、b/466090694)SubspaceModifier.rotateに非推奨の空のオーバーロードを追加しました。(Idceb6)SpatialSmoothFeatheringEffect関数の名前をspatialSmoothFeatheringEffectに変更し、描画モジュールに移動しました。SpatialExternalSurfaceのデフォルトのフェザリング値を null に更新しました。これにより、以前の ZeroFeatheringEffect 機能が再現されます。(I5fdaa、b/460426800)onPointSourceParamsAvailableを削除しました。別の音声空間化 API が近日中にリリースされる予定です。(I86507、b/458513439)- オフセット サブスペース修飾子に RTL 動作を追加しました。また、レイアウト方向を無視する
absoluteOffsetも追加しました。(I30e4b、b/474409165)
バージョン 1.0.0-alpha11
2026 年 2 月 25 日
androidx.xr.compose:compose:1.0.0-alpha11 と androidx.xr.compose:compose-testing:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。
新機能
SpatialExternalSurfacesにSuperSamplingパラメータを追加しました(Icd4d1)
API の変更
- レイアウト方向を認識するためのサブスペース修飾子のパディングの変更。(I53e25)
SpatialCapabilitiesが sealed になり、拡張できなくなりました。(I07aef)- 汎用
SpatialAlignmentパラメータを受け取るSpatialRowAPI とSpatialColumnAPI は非推奨になりました。代わりに、SpatialRowとSpatialColumnにそれぞれverticalAlignmentまたはhorizontalAlignmentを受け取る API を使用してください。(Iec390) SubspaceLayout関数 API のオーバーロードを結合しました(Idd30a)SubspaceModifier.lookAtUserの名前をrotateToLookAtUserに変更し、upパラメータの名前をupDirectionに変更しました。(Icafb8)SpatialRowをインライン関数にしました(Ia2f20)SpatialColumnをインライン関数にしました(I681be)- ビルボード API を削除しました(Ib76cd)
バージョン 1.0.0-alpha10
2026 年 1 月 28 日
androidx.xr.compose:compose:1.0.0-alpha10 と androidx.xr.compose:compose-testing:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。
API の変更
- 非推奨の API
ApplicationSubspaceを削除しました(Ia6596、b/468345186) SpatialShapeを sealed インターフェースに更新しました(I7e3f5、b/460426800)SpatialAlignmentで非推奨の API を削除しました。(Ib0b61、b/468011887)SpatialLayoutSpacerを非推奨にし、SpatialSpacerを導入しました。(I2ebf3、b/466071383)UserSubspaceAPI を更新し、「遅延ロック」という用語を「ソフトロック」に置き換えました。(I9ded1、b/464035984)
バージョン 1.0.0-alpha09
2025 年 12 月 3 日
androidx.xr.compose:compose:1.0.0-alpha09 と androidx.xr.compose:compose-testing:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。
API の変更
- コンテンツが常にユーザーを向くようにする
LookAtUser修飾子と Billboard 修飾子を追加しました。(I49b99) SpatialExternalSurfacesとSpatialPanelsにInteractionPolicyを設定する機能を追加し、クリックやその他の 3D 入力イベントを検出できるようにしました。(Iae155)- 幅、高さ、奥行きを Dp 値とするサイズと
requiredSize修飾子のオーバーロードを追加しました。(I92f79) ParentLayoutParamsModifierインターフェースがDelegatableSubspaceNodeを拡張するようになりました。(I1a6d4)ApplicationSubspaceは非推奨となり、Subspace API が推奨されるようになりました。- Subspace API の動作が変更され、推奨されるポーズとスケールでアプリ全体のサブスペースのみが提供されるようになりました。
PlanarEmbeddedSubspaceAPI が導入され、2D コンテキストに埋め込みサブスペースを提供できるようになりました。(Id3343)
SubspaceModifier.NodeAPI にshouldAutoInvalidateフラグを追加しました。(I93902)required(Size|Width|Depth|Height)を追加しました。これにより、デベロッパーは、親の入力測定制約を無視して、@SubspaceComposableのサイズを特定の範囲に制限できます。(Ifaa78)SubspaceModifier.onSizeChangedを追加しました。これにより、デベロッパーは@SubspaceComposableのサイズが変更されたときに反応するための、シンプルで集中的なコールバックを提供できます。(I994f9)- Volume API を削除しました。Volume API の代わりに
SceneCoreEntityAPI を使用する必要があります。(I4162b) SubspaceLayoutModifierNode.requestRelayoutをinvalidateMeasurement/invalidatePlacementに分割しました。(I14805)- デベロッパーが Compose で glTF をレンダリングできるようにする
SpatialGltfModelAPI を追加しました。(Icc91f) - glTF を簡単にレンダリングするための
SpatialGltfModelコンポーズ可能 API を導入しました(Iade67)
バグの修正
SceneCoreEntityのレイアウト バグを修正しました。これで、制約が正しく適用されるようになります。(I11bb8)- jxr-compose モジュールを
Compile sdk = 34に下げました(I2d5db)
バージョン 1.0.0-alpha08
2025 年 10 月 22 日
androidx.xr.compose:compose:1.0.0-alpha08 と androidx.xr.compose:compose-testing:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。
API の変更
ResizePolicyがonResizeStart、onResizeUpdate、onResizeEndを受け入れるように変更しました。(I7e21f)
バグの修正
- サブスペースを含むアクティビティを破棄する際のクラッシュを防ぎました。(I595a1)
バージョン 1.0.0-alpha07
2025 年 9 月 24 日
androidx.xr.compose:compose:1.0.0-alpha07 と androidx.xr.compose:compose-testing:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。
API の変更
SpatialMainPanelの KDoc を改善しました。(I27b70、b/444467891)SpatialRowやSpatialColumnなどの 3D レイアウトで、主軸に沿って子を配置するためのSpatialArrangementを導入しました。この新しい API は、2D Compose の使い慣れた配置オプション(Start、End、Center、SpaceBetween、SpaceAround、SpaceEvenly)を提供し、LTR と RTL の両方のレイアウト方向を完全にサポートします。(I7db38、b/436289959)SubspaceModifier.Nodeの基本インターフェースを追加して、拡張インターフェースの型安全性と使いやすさを改善しました。例:CompositionLocalConsumerSubspaceModifierNodeLayoutCoordinatesAwareModifierNodeSubspaceLayoutModifierNodeCoreEntityNode(内部)(Iede00、b/440599394、b/440599394)
SpatialExternalSurfaceの制限を解除しました(I33315、b/439646773)- サブスペース コンポーザブルに
SubspaceModifierを導入し、制約パラメータをサイズ関連のSubspaceModifiersを含むSubspaceModifierに置き換えました。allowUnboundedSubspaceが true の場合でも、サブスペースに無制限の制約を設定できます。(Ib06e6、b/433331675) - 移動可能でサイズ変更可能な
SubspaceModifiersは、DragPolicy()とResizePolicy()がSpatialPanelAPI とSpatialExternalSurfaceAPI の一部になったため、非推奨になりました(I397bf、b/437924639) - 空間レイアウトで
LayoutDirectionのサポートを追加しました。SpatialAlignmentを使用するコンポーザブルは、LTR コンテキストと RTL コンテキストの両方で要素を正しく配置するようになりました。(I964bb、b/436300273) - これらの動作がサポートされているコンテナにのみ適用されるように、
PanelAPI に Resizable パラメータと Movable パラメータを追加しました。(Id491c) - 幅、高さ、奥行きの正確な最小制約と最大制約を設定できる
sizeIn、widthIn、heightIn、depthInSubspaceModifiersを追加しました。(I1af09、b/433330761)
バージョン 1.0.0-alpha06
2025 年 8 月 13 日
androidx.xr.compose:compose:1.0.0-alpha06 と androidx.xr.compose:compose-testing:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。
バグの修正
- ライフサイクル オーナーが破棄されたときに
ComposeXrOwnerLocalsを再作成します。(9123ce1)
バージョン 1.0.0-alpha05
2025 年 7 月 30 日
androidx.xr.compose:compose:1.0.0-alpha05 と androidx.xr.compose:compose-testing:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
SubspaceComposableアノテーション クラスを公開しました。(Ic2a34、b/399432430)- 180 度と 360 度の球を表す 2 つの新しい
SpatialExternalSurfaceコンポーザブル。(I40ef2、b/391705799) SubspaceModifier.aspectRatioを追加しました(Ide5ab、b/399729509、b/414762147)SceneCoreと Compose for XR の相互運用性を改善するために、SceneCoreEntityAPI を追加しました。(I50bb3、b/423020989)- スケーリングされていない And
GravityAligned機能をサポートするために、GravityAlignedsubspaceAPI を提供しました(I07359)
API の変更
SpatialDialog()はSpatialDialogProperties.dismissOnBackの押下構成に従います。(Ib453b、b/416797132)minimumPanelDimensionを新しいデフォルトの Dimension サイズDimensions(0.1f, 0.1f, 0.1f)に更新しました。これはメートル単位で表されるためです。(Ib852a)- サブスペースとオービターは、ホームスペースとアプリがバックグラウンドにあるときに内部状態を保持するようになりました。ホームスペース モードでは、フルスペース モードへの切り替えに備えて、サブスペースがシーンを設定します。(I40317、b/416037751)
SpatialDialogsは、アプリがバックグラウンドにあるときに状態を保持するようになりました。(I6aa56)ApplicationSubspaceは、推奨されるスケールと位置をシステムから継承するようになりました。(I4565f、b/418834194)SubspaceComposableがSubspaceComposable以外のコンテキストで使用された場合に、より適切なエラー メッセージを追加し、エラーを早期にトリガーするようにしました。(Iee2ae、b/416484684)- コンポーズ可能な API の誤用時に警告が見落とされることが多いため、
ExperimentalSubspaceVolumeApiを警告からエラーに更新しました。(I427aa、b/424864286) - サブスペースと
ApplicationSubspaceがrecommendedContentBoxInFullSpaceによって制約されるようになりました。以前は、SpatialUserの画角によって制約されていました。(I41015、b/423074142) - ハードコードされたサイズを使用しないように、
SpatialElevationを最小サイズを使用するように更新しました(I2dbe6、b/427785338) - キー変数が変更されたときに更新されるように、
SpatialAcitivityPanelをスクリムする方法を更新しました。(I0f64d、b/427999029) VolumeConstraints.Unboundedを削除し、デフォルトの制約値を同等の値に設定するようにしました。(Ie24ec、b/407938414)SpatialFeatheringSizeは公開されなくなりました(I1c15b、b/399432430)- Compose の
Placeableと区別するために、XRPlaceableの名前をSubspacePlaceableに変更しました。(I74874) - オービターの設定を削除し、新しいパラメータとして
shouldRenderInNonSpatialを追加しました。また、クラスEdgeOffsetを削除し、Orbiter()関数を統合するために新しいパラメータとしてorbiterOffsetTypeを追加しました。さらに、OrbiterEdgeの名前をContentEdgeに変更しました。(Iebf3d) - Compose の
Measurable型と区別するために、Measurableの名前をSubspaceMeasurableに変更しました。(I9726c) MeasureResultの名前をSubspaceMeasureResultに変更しました(I9f34d)setSubspaceContentAPI を削除し、Subspaceコンポーザブルで Compose のsetContentを使用するようにしました。(Ifff4c、b/421427391、b/421427391)MeasurePolicyの名前をSubspaceMeasurePolicyに変更しました。(I37a9b、b/422553904)- デフォルトなしでメンバーを追加できないため、
SubspaceSemanticsInfoを sealed インターフェースにしました。(I372f9、b/423704068) SpatialExternalSurfaceのドキュメントを更新し、ContentSecurityLevelの名前をSurfaceProtectionに変更しました(I3c460、b/420982808)- アンカーを可能にする、移動可能な修飾子のオーバーロードされたコンストラクタを提供しました。(Ic0c70)
- ツールチップの位置プロバイダを追加しました。これにより、ツールチップをアンカーの上、下、左、右のいずれに配置するかをデベロッパーが制御できるようになりました。キャレットの Shape を受け取る API を追加しました。これにより、より多くのカスタム Shape を提供できます。(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()をチェーンすると、SpatialPanel が新しいサイズに正しくサイズ変更されない問題を修正しました。(I02ee3、b/422264230)SpatialComposeVideoPlayerでtopBarがメニューと重なる問題を修正しました(Id33bc、b/427168167)- 角の丸みがレンダリングされない問題を修正しました(I975fe、b/428261830)
バージョン 1.0.0-alpha04
2025 年 5 月 7 日
androidx.xr.compose:compose:1.0.0-alpha04 と androidx.xr.compose:compose-testing:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
CompositionLocalConsumerSubspaceModifierNodeインターフェースを追加して、カスタムSubspaceModifier型がコンポジション ローカル値にアクセスできるようにしました。- Compose の
AndroidView実装スタイルに従う新しいSpatialPanelAPI を追加し、以前のViewBased SpatialPanelを非推奨にしました。 - 無制限の制約を表す
VolumeConstraints.Unboundedコンパニオン オブジェクトを追加しました。 - 空間化された音声ソースを許可するために、
SubspaceModifier.onPointSourceParamsを追加しました。 - 公開された
ApplicationSubspaceが追加されました。これにより、アプリが空間コンテンツをレンダリングできる 3D 領域を定義するオプションのVolumeConstraintsを提供できます。デフォルトでは、制約が指定されていない場合、サブスペースはSpatialUserの現在の画角によって幅と高さが制限されます。画角を特定できない場合は、使用する制約を指定できます。それ以外の場合は、デフォルトの画角の幅と高さの値が使用されます。 - 立体視コンテンツのレンダリングに使用できる
SpatialExternalSurfaceを追加しました。SpatialExternalSurfaceは、修飾子(アルファを除く)とエッジ フェザリング効果でカスタマイズできます。 - ユーザーが空間ポインタのアイコンを設定できる新しい
pointerHoverIconサブスペース修飾子を追加しました。
API の変更
- すべての Jetpack XR パッケージの
RequiresApi(34)制限を削除しました。Jetpack XR は現在 API レベル 34 以上のデバイスでのみ利用できるため、この制限は冗長でした。(Iae0f8) - Kotlin 2.0 でリリースされたプロジェクトを使用するには、KGP 2.0.0 以降が必要です。(Idb6b5)
- 埋め込みアクティビティのない空間パネルで、戻る操作が機能するようになりました。戻る操作を機能させるには、Android マニフェストで
android:enableOnBackInvokedCallback="true"を指定する必要があります。 - 空間ダイアログで、戻る操作が機能するようになりました。戻る操作を機能させるには、Android マニフェストで
android:enableOnBackInvokedCallback="true"を指定する必要があります。 - Compose ベースと View ベースの
SpatialPanelが、コンテンツに基づいてサイズを調整できるようになりました。 - デベロッパーは、独自のカスタム
SpatialElevationLevel値を設定できるようになり、事前定義されたレベルに限定されなくなりました。 - オービターの標高レベルを
elevationパラメータでカスタマイズできるようになりました。 - サブスペースは、デフォルトで
SpatialUserの画角によって幅と高さが制限されるようになりました。画角を特定できない場合は、デフォルトの画角の幅と高さの値が使用されます。 Movable修飾子に新しいコールバックonMoveStartとonMoveEndを追加しました。onMoveStartコールバックとonMoveEndコールバックは、ユーザーが移動可能な修飾子を使用してサブスペース コンポーザブルの移動を開始したときと終了したときに呼び出されます。nameパラメータが、SpatialRowやSpatialPanelなどの空間 API から削除されました。空間 Compose ツリーをデバッグするには、代わりにSubspaceModifier.testTagを使用します。spatialElevationLevelとcontentのみを含む、サポートされていないSpatialPopupのオーバーロードを削除しました。onDimissRequestをサポートするインターフェースを使用してください。- Movable 修飾子の
onPoseChangeコールバックを削除しました。代わりにonMoveを使用してください。 SubspaceModifiersは、切り離されている場合や切り離し中の場合は、効果を適用しなくなります。- 既存の
SpatialRowAPI をSpatialRowとSpatialCurvedRowに分割しました。以前にSpatialRowのcurveRadiusパラメータを使用していた場合は、代わりに同じ動作を提供するSpatialCurvedRowを使用してください。 - 同様に最新のシステム イメージで実行する場合、
MainPanelとActivityPanelにタイトルバーが表示されなくなりました。 - アルファ修飾子とスケール修飾子がスタック可能になり、最終的に適用されるアルファ値またはスケール値に対して値を乗算するようになりました。
- Movable 修飾子の
onPoseChangeコールバックが最適化され、よりスムーズなポーズ移動が可能になりました。 - 移動可能でサイズ変更可能な修飾子がメインスレッドでコールバックを実行するようになり、状態の変更によって再コンポーズがトリガーされるようになりました。
- レイアウト フェーズと測定フェーズに状態の監視を追加して、
SubspaceLayoutの状態の変更によって再レイアウトがトリガーされるようにしました。 - 既存の修飾子をより適切に再利用できるように、修飾子チェーンの更新を最適化しました。
バグの修正
SpatialDialogが表示されたときにスクリムを停止しました。(Ic4594)- 修飾子ノードが切り離されている間に行われた再レイアウト リクエストは無視されるようになりました。
- Movable 修飾子と Resizable 修飾子によってトリガーされる再レイアウト フェーズを削除しました。
- いずれかのディメンションがゼロに設定された場合(直接またはレイアウト計算中、たとえば
SpatialRow/SpatialColumnの計算中)に発生するMainPanel()コンポーザブルのクラッシュを修正しました。代わりにパネルが非表示になります。この修正は、レイアウト フェーズ中のクラッシュに特に対処するものです。ユーザー インタラクションによるパネルのサイズ変更は別途処理されます。非表示のパネルには UI アフォーダンスがありません。 - サイズ変更可能な修飾子の
maintainAspectRatioに関する問題を修正しました。アスペクト比が維持されるようになりました。 - ネストされたサブスペースが 1 フレームだけ誤った位置に配置される問題を修正しました。
- 角の丸みが適用されるべきときに適用されないことがある問題を修正しました。
NestedSubspacesが誤った場所に 1 フレームだけ表示されなくなりました。
バージョン 1.0.0-alpha03
2025 年 2 月 26 日
androidx.xr.compose:compose:1.0.0-alpha03 と androidx.xr.compose:compose-testing:1.0.0-alpha03 がリリースされました。前回のアルファ版からの大きな変更はありません。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
バージョン 1.0.0-alpha02
2025 年 2 月 12 日
androidx.xr.compose:compose:1.0.0-alpha02 と androidx.xr.compose:compose-testing:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- 空間ダイアログがアクティブになったときに、アクティビティ パネルでコンテンツをスクリムできるようになりました。
OrbiterAPI をSubspaceComposableコンテキストで使用できるようになり、オービターが最も近いSubspaceLayoutベースのコンポーズ可能な親にアタッチされるようになりました。- カスタムの位置ベースの修飾子を許可するために、
LayoutCoordinatesAwareModifierNodeを導入しました。 - アタッチ/デタッチのライフサイクル メソッドを
SubspaceModifier.Nodeに追加しました。 - 移動可能な修飾子に
scaleWithDistanceを追加しました。scaleWithDistanceが有効になっている場合、移動したサブスペース要素は拡大または縮小します。また、移動前の明示的なスケールも維持されます。
API の変更
SessionCallbackProviderを削除し、SpatialCapabilitiesを推奨しました。
その他の変更
minSDKを 24 に減らしました。すべての Jetpack XR API は、引き続き実行時に API 34 を必要とします。OrbiterEdgeOffset.inner、EdgeOffset.outer、EdgeOffset.overlapのコンストラクタが@Composableメソッドではなくなり、コンポーザブル以外のコンテキストで使用できるようになりました。- 最新の UX 仕様に合わせて空間標高レベルを更新しました。
SubspaceSemanticsInfoインターフェースをMeasurableLayoutに実装しました。SubspaceModifierElementの名前をSubspaceModifierNodeElementに変更しました。
バグの修正
SubspaceModifierの順序を安定させるための修正。SubspaceModifierがより確実に動作するようになりました。オフセット、回転、スケール、移動可能、サイズ変更可能な修飾子を任意の順序で使用できるようになりました。
バージョン 1.0.0-alpha01
2024 年 12 月 12 日
androidx.xr.compose:compose-*1.0.0-alpha01 がリリースされました。
初期リリースの機能
Jetpack Compose for XR のデベロッパー向け初期リリース。既存の 2D アプリを XR に移植する場合でも、XR アプリをゼロから作成する場合でも、行や列などの使い慣れた Compose のコンセプトを使用して、XR で空間 UI レイアウトを作成できます。このライブラリには、空間パネルやオービターなどのサブスペース コンポーザブルと空間コンポーザブルが用意されており、既存の 2D Compose ベースまたは Views ベースの UI を空間レイアウトに配置できます。Volume サブスペース コンポーザブルが導入され、3D モデルなどの SceneCore エンティティを UI に対して相対的に配置できます。詳しくは、こちらのデベロッパー ガイドをご覧ください。
Subspace: このコンポーザブルは、アプリの UI 階層内の任意の場所に配置できるため、ファイル間でコンテキストを失うことなく、2D UI と空間 UI のレイアウトを維持できます。これにより、UI ツリー全体で状態をホイストしたり、アプリを再設計したりすることなく、XR やその他のフォーム ファクタ間で既存のアプリ アーキテクチャなどを簡単に共有できます。SpatialPanel: 空間パネルは、アプリのコンテンツを表示できるサブスペース コンポーザブルです。たとえば、動画再生、静止画、その他のコンテンツを空間パネルに表示できます。
Orbiter: オービターは空間 UI コンポーネントです。対応する空間パネルに接続するように設計されており、その空間パネルに関連するナビゲーション項目とコンテキスト アクション項目が含まれています。たとえば、動画コンテンツを表示する空間パネルを作成した場合は、オービター内に動画再生コントロールを追加できます。
ボリューム: 3D モデルなどの SceneCore エンティティを UI に対して相対的に配置します。
空間レイアウト: 複数の空間パネルを作成し、
SpatialRow、SpatialColumn、SpatialBox、およびSpatialLayoutSpacerを使用して空間レイアウト内に配置できます。SubspaceModifierを使用してレイアウトをカスタマイズします。空間 UI コンポーネント: これらの要素は 2D UI で再利用できます。空間属性は、空間機能が有効になっている場合にのみ表示されます。
SpatialDialog: パネルは z 深度でわずかに後方に移動し、標高の高いダイアログを表示します。SpatialPopUp: パネルは z 深度でわずかに後方に移動し、標高の高いポップアップを表示します。SpatialElevation:SpatialElevationLevelを設定して標高を追加できます。
SpatialCapabilities: 空間機能は、ユーザーがアプリやシステムを操作するにつれて変化する可能性があります。また、アプリ自体によって変更されることもあります(ホームスペースやフルスペースへの移動など)。問題を防ぐには、アプリで
LocalSpatialCapabilities.currentを確認して、現在の環境でサポートされている API を特定する必要があります。isSpatialUiEnabled: 空間 UI 要素(SpatialPanel など)isContent3dEnabled: 3D オブジェクトisAppEnvironmentEnabled: 環境isPassthroughControlEnabled: アプリケーションがパススルー状態を制御できるかどうかisSpatialAudioEnabled: 空間オーディオ
既知の問題
- 現在、Jetpack Compose for XR を使用するには、minSDK 30 が必要です。回避策として、次のマニフェスト エントリ
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>を追加すると、minSDK 23 でビルドして実行できます。 - 現在、Jetpack XR アプリでは、AndroidManifest で
android.permission.SCENE_UNDERSTANDING権限をリクエストする必要があります。 - マニフェストの
PROPERTY_XR_ACTIVITY_START_MODEプロパティを使用してアプリがフルスペースに直接起動する場合、アクティビティ/アプリケーションは最初にホームスペースで開き、その後フルスペースに移行します。 - Volume コンポーザブルの glTF が、最初は誤った位置でちらつくことがあります。
- 大幅に移動したパネルで SpatialDialog を使用すると、コンテンツが誤った方向に移動します。