首页 > 其他分享 >Android开发 Jetpack Compose FlowColumn与FlowRow瀑布流布局

Android开发 Jetpack Compose FlowColumn与FlowRow瀑布流布局

时间:2023-04-01 14:12:03浏览次数:39  
标签:Compose Jetpack accompanist FlowRow FlowMainAxisAlignment FlowColumn 节点 dp

前言

  FlowColumn与FlowRow是Jetpack提供的辅助库accompanist的一员,以提供那些在Jetpack Compose sdk中目前还没有的功能API。因为默认库中的Column、Row、LazyVerticalGrid、LazyHorizontalGrid都无法满足流瀑布布局的需求,而且类似这种网格布局LazyVerticalGrid、LazyHorizontalGrid还有无法禁用滚动的问题。所以Jetpack通过辅助库accompanist提供了FlowColumn与FlowRow。

依赖

//流瀑布
implementation "com.google.accompanist:accompanist-flowlayout:0.28.0"

FlowColumn瀑布流效果

代码

@Preview(widthDp = 1280, heightDp = 720)
@Composable
fun textList() {
    FlowColumn(
        modifier = Modifier
            .fillMaxSize()
            .padding(15.dp)
        ,
        mainAxisSpacing = 8.dp,
        crossAxisSpacing = 8.dp
    ) {
        repeat(30) {
            Text(
                text = it.toString(),
                fontSize = 30.sp,
                textAlign = TextAlign.Center,
                color = Color.Black,
                modifier = Modifier
                    .padding(10.dp)
                    .width(100.dp)
                    .height((50..150).random().dp)//高度使用了随机值,模拟瀑布流效果
                    .background(color = Color.LightGray)
            )
        }
    }
}

效果图

 

参数解释

mainAxisSize: SizeMode = SizeMode.Wrap,

mainAxisAlignment: 排列起始方向

FlowMainAxisAlignment.Start

FlowMainAxisAlignment.Center

FlowMainAxisAlignment.End

FlowMainAxisAlignment.SpaceEvenly  

放置子节点,使它们在主轴上的间隔均匀,包括第一个子节点之前和最后一个子节点之后的空闲空间。

FlowMainAxisAlignment.SpaceBetween

放置子节点,使它们在主轴上均匀地间隔,在第一个子节点之前或最后一个子节点之后没有空闲空间。

FlowMainAxisAlignment.SpaceAround

放置子节点,使它们在主轴上均匀间隔,包括第一个子节点之前和最后一个子节点之后的空闲空间,但在两个连续的子节点之间存在一半的空间。

mainAxisSpacing 当前方向主轴间距

crossAxisAlignment: FlowCrossAxisAlignment = FlowCrossAxisAlignment.Start,

crossAxisSpacing: Dp = 0.dp,

lastLineMainAxisAlignment: FlowMainAxisAlignment = mainAxisAlignment,

 

 

 

End

标签:Compose,Jetpack,accompanist,FlowRow,FlowMainAxisAlignment,FlowColumn,节点,dp
From: https://www.cnblogs.com/guanxinjing/p/17278391.html

相关文章

  • Docker Compose
    DockercomposeCompose简介​ Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,可以使用YML文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从YML文件配置中创建并启动所有服务。Compose使用的三个步骤:使用Dockerfile定义应用程序的......
  • wordpress的dockercompose部署方式
    version:'3.1'services:wordpressastra:image:wordpressrestart:alwaysports:-8082:80environment:WORDPRESS_DB_HOST:dbastraWORDPRESS_DB_USER:exampleuserWORDPRESS_DB_PASSWORD:examplepass......
  • docker-compose 安装 LDAP+phpLDAPadmin
    docker-compose安装LDAP+phpLDAPadmin1、docker-compose.ymlversion:'2'services:#ldap服务openldap:image:osixia/openldapcontainer_name:op......
  • Docker compose 部署的Jenkins如何更新版本
    转载于Docker部署的Jenkins如何更新版本呢_Tomonkey的博客-CSDN博客_dockerjenkins升级在这之前,使用docker-compose部署了docker,其中的脚本配置如下。1.安装Jenkinsdocke......
  • docker-compose部署elk并设置账户密码
    docker-compose部署elk并设置账户密码系列最近因为在搭建微服务环境所以要用到elk首先介绍一下什么是elk,以及负责的功能模块(部署的过程比较坎坷我尽量把遇到的坑,以及如何......
  • wsl 中 docker-compose 搭建 kafka 集群出现的外部访问错误
    在wsl中用docker-compose搭建了一台zookeeper+三台broker的kafka集群,使用的镜像是bitnami/kafka,在按照镜像文档运行容器后,发现运行在宿主机里的客户端程序无法......
  • gralde插件->docker-compose的使用
    在javaweb项目中,本地开发经常会需要在本地使用docker启动数据库等之类的服务。gradle提供了一个插件,允许通过gradletask启动docker的容器。在这里我们介绍的一个gralde插......
  • composer常用命令及 composer.json和composer.lock的区别
    阅读目录composer.json和composer.lockcomposer常用命令地址改为中国镜像地址composer.json和composer.lock在使用composer后目录中会出现2个文件,composer.lock和compo......
  • docker-compose.yml 参数详解
    示例文件:docker-compose.ymlversion:'3.8'#DockerCompose文件版本号services:#定义应用程序中的服务,每个服务对应一个容器web:#定义一个名为web的服务......
  • 从零开始一步一步搭建Ubuntu Server服务器、修改数据源、安装Docker、配置镜像加速器
    场景最终目的是使用DockerCompose部署一个Gitlab服务。效果 注:博客:javascript:void(0)关注公众号霸道的程序猿获取编程相关电子书、教程推送与免费下载。实现注:在此过......