Orbiter, SpatialColumn, SpatialRow veya SpatialBox gibi ilgili bir uzamsal panele ya da uzamsal düzen bileşenine ekleyebileceğiniz uzamsallaştırılmış bir bileşendir. Yörünge öğesi genellikle sabitlendiği varlıkla ilgili gezinme ve bağlamsal işlem öğeleri içerir. Örneğin, video içeriği görüntülemek için bir uzamsal panel oluşturduysanız yörüngeye video oynatma kontrolleri ekleyebilirsiniz.
Yörünge aracı oluşturma
Aşağıdaki örnekte gösterildiği gibi, gezinme gibi kullanıcı denetimlerini sarmalamak için SpatialPanel içinde 2D düzende bir orbiter çağırın. Bu işlem, bunları 2D düzeninizden çıkarır ve yapılandırmanıza göre uzamsal panele ekler.
Subspace { SpatialPanel( SubspaceModifier .height(824.dp) .width(1400.dp) .resizable() .movable(), ) { SpatialPanelContent() OrbiterExample() } }
@Composable fun OrbiterExample() { Orbiter( position = OrbiterPosition.BottomCenter( verticalEdgeAlignment = OrbiterPosition.EdgeAlignment.Outside, offset = DpVolumeOffset(y = 96.dp) ), ) { Surface(Modifier.clip(CircleShape)) { Row( Modifier .background(color = Color.Black) .height(100.dp) .width(600.dp), horizontalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically ) { Text( text = "Orbiter", color = Color.White, fontSize = 50.sp ) } } } }
Kodla ilgili önemli noktalar
- Yörünge öğeleri, uzamsal kullanıcı arayüzü bileşenleri olduğundan kod, 2D veya 3D düzenlerde yeniden kullanılabilir. 2D düzende uygulamanız yalnızca orbiter içindeki içeriği oluşturur ve orbiter'ın kendisini yoksayar.
- Yörünge öğelerinin kullanımı ve tasarımı hakkında daha fazla bilgi için tasarım kılavuzumuzu inceleyin.
Yörünge öğelerini uzamsal panellere ve düzenlere sabitleme
Yörünge öğesini, Compose'da tanımlanan bir SpatialPanel ve uzamsal düzen bileşenlerine sabitleyebilirsiniz. Bu işlem, SpatialRow, SpatialColumn veya SpatialBox gibi kullanıcı arayüzü öğelerinin uzamsal düzeninde bir orbiter tanımlamayı içerir. Yörünge öğesi, tanımlandığı yere en yakın üst öğeye sabitlenir.
Yörünge aracının davranışı, onu nerede tanımladığınıza göre belirlenir:
SpatialPanelile sarmalanmış 2D düzende (önceki kod snippet'inde gösterildiği gibi) yörünge aracı buSpatialPanelöğesine sabitlenir.Subspaceiçinde, yörünge aracı en yakın ana varlığa sabitlenir. Bu varlık, yörünge aracının tanımlandığı uzamsal düzendir.
Aşağıdaki örnekte, bir yörünge öğesinin uzamsal satıra nasıl sabitleneceği gösterilmektedir:
Subspace { SpatialRow { Orbiter( position = OrbiterPosition.TopCenter( verticalEdgeAlignment = OrbiterPosition.EdgeAlignment.Outside, offset = DpVolumeOffset(y = 8.dp) ), shape = SpatialRoundedCornerShape(size = CornerSize(50)) ) { Text( "Hello World!", style = MaterialTheme.typography.titleMedium, modifier = Modifier .background(Color.White) .padding(16.dp) ) } SpatialPanel( SubspaceModifier .height(824.dp) .width(1400.dp) ) { Box( modifier = Modifier .background(Color.Red) ) } SpatialPanel( SubspaceModifier .height(824.dp) .width(1400.dp) ) { Box( modifier = Modifier .background(Color.Blue) ) } } }
Kodla ilgili önemli noktalar
- 2D düzenin dışında bir yörünge öğesi tanımladığınızda, yörünge öğesi en yakın ana varlığına sabitlenir. Bu durumda, yörünge aracı, bildirildiği
SpatialRowöğesinin üst kısmına sabitlenir. SpatialRow,SpatialColumn,SpatialBoxgibi uzamsal düzenlerin tümünde içeriksiz varlıklar bulunur. Bu nedenle, bir uzamsal düzende tanımlanan yörünge öğesi o düzene sabitlenir.