Compose中的FlowLayout
前言
Compose库中是没有原生的类似FlowLayout的布局的
于是我们来自己实现一个FlowLayout
正文
FlowLayout
先看看FlowLayout实现的效果:
代码很简单:
看一下api:
/*** 可以自动换行的线性布局* [modifier]修饰* [orientation]排列的方向,[Orientation.Horizontal]时会先横向排列,一排放不下会换到下一行继续横向排列* [horizontalAlignment]子级在横向上的位置* [verticalAlignment]子级在竖向上的位置* [horizontalMargin]子级与子级在横向上的间距* [verticalMargin]子级与子级在竖向上的间距* [maxLines]最多能放多少行(或列)* [content]compose内容区域*/
@Composable
fun FlowLayout(modifier: Modifier = Modifier,orientation: Orientation = Orientation.Horizontal,horizontalAlignment: Alignment.Horizontal = Alignment.Start,verticalAlignment: Alignment.Vertical = Alignment.Top,horizontalMargin: Dp = 0.dp,verticalMargin: Dp = 0.dp,maxLines: Int = Int.MAX_VALUE,content: @Composable () -> Unit
)
原理:
原理其实和安卓xml布局中的FlowLayout一样,就是测量所有的子项,并根据方向,间距,对齐方式对子项进行测量和放置即可
引入项目
在根项目的build.gradle文件中加入:
allprojects {repositories {maven { url 'https://jitpack.io' }...}
}
app的build.gradle中加上,最新版本参考:JitPack | Publish JVM and Android libraries
dependencies{...implementation 'com.github.ltttttttttttt:ComposeViews:1.1.4'
}
然后就可以愉快的使用FlowLayout了
项目已开源,欢迎star:GitHub - ltttttttttttt/ComposeViews
并且项目中不止有FlowLayout,还有更多好用的Compose组件,比如:
ComposePager
Banner
GoodTextField和PasswordTextField
后续还会添加更多的Compose组件
end
Compose中的FlowLayout相关推荐
- Jetpack Compose中的Accompanist
accompanist是Jetpack Compose官方提供的一个辅助工具库,以提供那些在Jetpack Compose sdk中目前还没有的功能API. 权限 依赖配置: repositories ...
- 在 Jetpack Compose 中安全地使用数据流
/ 今日科技快讯 / 11月17日下午,暴雪中国官方微博发布公告称,各位暴雪游戏的国服玩家,我们很遗憾地通知大家,随着我们与网之易公司现有授权协议的到期,自2023年1月24日0点起,所有&l ...
- Jetpack Compose中的Modifier
Modifier的基本使用 Modifier修饰符是Jetpack Compose中用来修饰组件的,提供常用的属性,写布局时几乎所有Composable组件的大部分属性都可以用Modifier 来修饰 ...
- Jetpack Compose中的手势操作
点击事件 监听点击事件非常简单,使用 clickable 和 combinedClickable 修饰符即可满足需求: @OptIn(ExperimentalFoundationApi::class) ...
- 详解Jetpack Compose中的Modifier修饰符
前言 本文将会介绍Jetpack Compose中的Modifier.在谷歌官方文档中它的描述是这么一句话:Modifier元素是一个有序.不可变的集合,它可以往Jetpack Compose UI元 ...
- Compose 中的附带效应
关键词 附带效应是指在可组合函数范围之外发生的应用状态变化 效应是一种可组合函数,该函数不会发出界面,并且在组合完成后产生附带效应. 效应名称 作用 用例 LaunchedEffect 在某个可组合项 ...
- Jetpack Compose 中使用 Lottie 动画
从事 Android 开发的 都知道 airbnb 的 Lottie 库,如今它也支持在 Jetpack Compose 中使用了. http://airbnb.io/lottie/#/android ...
- Jetpack All In Compose ?看各种Jetpack库在Compose中的使用
Jeptack Compose 主要目的是提高 UI 层的开发效率,但一个完整项目还少不了逻辑层.数据层的配合.幸好 Jetpack 中不少组件库已经与 Compose 进行了适配,开发者可以使用这些 ...
- 42. Compose1.4 如何在Jetpack Compose中为文本应用描边效果(OpenAi翻译)
探索Jetpack Compose中文本笔画效果的DrawStyle API Jetpack Compose最近为TextStyle增加了很多新的自定义选项,TextStyle.drawStyle就是 ...
最新文章
- centos共享linux文件夹权限,CENTOS7 搭建文件服务器:samba共享linux文件夹
- shell / 获取当前工作目录的方法
- ubuntu下wps不能输入中文
- ajax post django,Django中的Ajax POST请求失败
- 什么不是预防计算机病毒的方法,预防计算机病毒的方法是什么
- FLEX自动完成组件.--AutoSuggest
- 最新苹果CMSV10视频电影网站源码+自适应手机版
- 范德蒙(Vander Monde)行列式的计算与应用
- FAQ:The field file exceeds its maximum permitted size of 1048576 bytes.
- 逆元的概念及求解方法
- 30 岁转行做程序员是什么样的体验
- GBase 8s HAC高可用方案
- 模糊系统与神经网络的区别,什么是模糊神经网络
- 连接远程计算机输入网络密码错误,电脑远程无法连接常见问题及解决大全
- 数据挖掘:数据清洗——数据噪声处理
- ubuntu 9.10下的网络电视sopcast的安装及消除播放杂音
- python人狗大战游戏_python入门教程NO.10「奇异博士大战灭霸」游戏,面向对象编程实战...
- 深入学习OpenCV中图像相似度的算法
- 学习雷锋好榜样可是我几乎没有做到
- 一条直线平行与斜率方向平移距离d后的坐标
热门文章
- 类型转换as和判断is
- Android 7.0新特性“Nougat”(牛轧糖)。
- 初识贝塞尔(bezier)曲线
- 德州仪器TI监控库存抢购锁单操作代码
- 路上发现一只被压扁的乌龟,不料竟发生这么诡异一幕
- 如何关闭linux系统的53端口,3种关闭linux系统端口方法(示例代码)
- Linux权限drwxrwxrwx相关详细说明
- python 导入txt文件并删除换行符并提取部分内容———MIMIC-IV/MIMIC-CXR文本报告预处理
- 网页制作中如何添加背景图片
- 【gitee代码图形化提交(小乌龟)】