Compose的滚动布局(五)
compose
compose - Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过Compose文件格式简化应用部署过程。
项目地址:https://gitcode.com/gh_mirrors/compose/compose
免费下载资源
·
一、前言
首先在Compose中是没有滚动布局的,只有滚动修饰符verticalScroll
和horizontalScroll
。通过使用这两个修饰符来修饰布局时候,可以使布局进行滚动
二、参考示例
以下是一个垂直列表滚动的例子
@Composable
fun ScrollBoxes() {
Column(
modifier = Modifier
.background(Color.LightGray)
.size(100.dp)
.verticalScroll(rememberScrollState())
) {
repeat(10) {
Text("Item $it", modifier = Modifier.padding(2.dp))
}
}
}
三、ScrollState
如果我们想要主动滚动列表或者获取一些滚动状态的话,可以使用ScrollState
。将以上代码修改为以下方式
@Composable
private fun nestingScroll(){
val gradient = Brush.verticalGradient(0f to Color.Gray, 1000f to Color.White)
Box(
modifier = Modifier
.background(Color.LightGray)
.verticalScroll(rememberScrollState())
.padding(32.dp)
) {
Column {
repeat(6) {
Box(
modifier = Modifier
.height(128.dp)
.verticalScroll(rememberScrollState())
) {
Text(
"Scroll here",
modifier = Modifier
.border(12.dp, Color.DarkGray)
.background(brush = gradient)
.padding(24.dp)
.height(150.dp)
)
}
}
}
}
}
四、滚动嵌套
Compose 支持*嵌套滚动,*其中多个元素对单个滚动手势作出反应。简单的嵌套滚动不需要您执行任何操作。嵌套滚动的典型示例是另一个列表中的列表,更复杂的情况是折叠工具栏。启动滚动操作的手势会自动从子项传播到父项,这样当子项无法进一步滚动时,手势由其父元素处理。
折叠工具栏的代码可以查看
以下示例显示verticalScroll
在容器中应用了修饰符的元素,该容器也verticalScroll
应用了修饰符。
val gradient = Brush.verticalGradient(0f to Color.Gray, 1000f to Color.White)
Box(
modifier = Modifier
.background(Color.LightGray)
.verticalScroll(rememberScrollState())
.padding(32.dp)
) {
Column {
repeat(6) {
Box(
modifier = Modifier
.height(128.dp)
.verticalScroll(rememberScrollState())
) {
Text(
"Scroll here",
modifier = Modifier
.border(12.dp, Color.DarkGray)
.background(brush = gradient)
.padding(24.dp)
.height(150.dp)
)
}
}
}
}
五、使用nestedScroll 修饰符
如果您需要在多个元素之间创建高级协调滚动, nestedScroll
修改器通过定义嵌套滚动层次结构为您提供更大的灵活性。其相关api如下:
fun Modifier.nestedScroll(
connection: NestedScrollConnection,
dispatcher: NestedScrollDispatcher? = null
): Modifier
具体代码略微复杂,后面再说这个的具体使用方式,官方教程如下:
六、参考链接
-
compose中的手势
https://developer.android.google.cn/jetpack/compose/gestures
-
compose中的nestedScroll
GitHub 加速计划 / compose / compose
33.27 K
5.15 K
下载
compose - Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过Compose文件格式简化应用部署过程。
最近提交(Master分支:2 个月前 )
501b5acd
Add `jhrotko` to Core Maintainers.
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
10 天前
f51bc4cd
Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com>
10 天前
更多推荐
已为社区贡献10条内容
所有评论(0)