列表允许用户在 Wear OS 设备上从一组选项中选择一项。
许多 Wear OS 设备使用圆形屏幕,这使得难以查看出现在屏幕顶部和底部的列表项。因此,Compose for Wear OS 包含 LazyColumn
类的一个版本,称为 ScalingLazyColumn
,它支持缩放和淡出效果。当项目向屏幕中心移动时,它们会变得更大且更不透明。
以下动画显示了元素的大小和透明度在屏幕上移动时的变化方式
以下代码片段展示了如何使用 Horologist 版本的 ScalingLazyColumn
布局创建内容,使其 在各种 Wear OS 屏幕尺寸上看起来都很棒,例如在下面的示例中,它将向列表中第一个和最后一个元素添加必要的填充,这些元素设置在 ScalingLazyColumn
的 scrollState
中。
val columnState = rememberResponsiveColumnState( contentPadding = ScalingLazyColumnDefaults.padding( first = ScalingLazyColumnDefaults.ItemType.Text, last = ScalingLazyColumnDefaults.ItemType.SingleButton ) ) ScreenScaffold(scrollState = columnState) { ScalingLazyColumn( columnState = columnState ) { item { ResponsiveListHeader(contentPadding = firstItemPadding()) { Text(text = "Header") } } // ... other items item { Button( imageVector = Icons.Default.Build, contentDescription = "Example Button", onClick = { } ) } } }
添加吸附和甩动效果
您可以为用户应用于 ScalingLazyColumn
对象的手指手势添加吸附和甩动行为。此效果可帮助用户更精确地浏览列表中的项目,同时也有助于他们更快地浏览长列表。
要将此效果添加到 Horologist 版本的 ScalingLazyColumn
中,请将 columnState
的 rotaryMode
参数设置为 RotaryWithSnap
,如以下代码片段所示
val columnState = rememberResponsiveColumnState( // ... // ... rotaryMode = ScalingLazyColumnState.RotaryMode.Snap ) ScreenScaffold(scrollState = columnState) { ScalingLazyColumn( columnState = columnState ) { // ... // ... } }
为您推荐
- 注意:当 JavaScript 关闭时,将显示链接文本。
- Compose for Wear OS 代码实验室
- 列表和网格
- 在 Compose 中使用视图