Compose横向列表和网格列表

news2024/12/26 10:47:58

横向列表LazyRow

LazyRow和LazyColumn使用类似。

/**
 * 横向列表LazyRow
 */
@Composable
fun LazyRowTest() {
    val context = LocalContext.current
    val dataList = arrayListOf<Int>()
    for (index in 1..50) {
        dataList.add(index)
    }

    LazyRow {
        items(dataList) { data ->
            Box(
                modifier = Modifier
                    .fillMaxHeight()
                    .padding(start = 1.dp)
                    .background(Color.White)
                    .clickable {
                        Toast
                            .makeText(context, "$data", Toast.LENGTH_SHORT)
                            .show()
                    }
                    .padding(10.dp),
            ) {
                Text(
                    text = "第${data}条数据",
                    modifier = Modifier.align(Alignment.Center), // 设置上下居中
                )
            }
        }
    }
}

垂直网格布局LazyVerticalGrid

垂直网格布局使用LazyVerticalGrid组件,GridCells.Adaptive以最小宽度设置横向排列数量,GridCells.Fixed直接设置横向排列数量。

/**
 * 垂直网格布局(纵向滑动)
 */
@Composable
fun LazyVerticalGridTest() {
    val photos = arrayListOf<Int>()
    for (index in 0..50) {
        photos.add(R.drawable.img)
    }

    LazyVerticalGrid(
        //以最小宽度设置横向排列数量
//        columns = GridCells.Adaptive(minSize = 120.dp)
        //直接设置横向排列数量
        columns = GridCells.Fixed(count = 3)
    ) {
        items(photos) { photo ->
            Image(
                painter = painterResource(photo),
                "",
                modifier = Modifier.padding(2.dp)
            )
        }
    }
}

水平网格布局LazyHorizontalGrid

 水平网格布局和垂直网格布局类似,只是纵向滑动变成了横向滑动,属性值和垂直网格布局相反。

/**
 * 水平网格布局(横向滑动)
 */
@Composable
fun LazyHorizontalGridTest() {
    val photos = arrayListOf<Int>()
    for (index in 0..50) {
        photos.add(R.drawable.img)
    }

    LazyHorizontalGrid(
        //以最小大小设置纵向排列数量
        rows = GridCells.Adaptive(minSize = 120.dp)
        //设置纵向排列数量
//        rows = GridCells.Fixed(count = 6)
    ) {
        items(photos) { photo ->
            Image(
                painter = painterResource(photo),
                "",
                modifier = Modifier.padding(5.dp)
            )
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1136177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据可视化BI分析工具Apache Superset实现公网远程访问

大数据可视化BI分析工具Apache Superset实现公网远程访问 文章目录 大数据可视化BI分析工具Apache Superset实现公网远程访问前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网…

CentOS 安装 tomcat 并设置 开机自启动

CentOS 安装 tomcat 并设置 开机自启动 下载jdk和tomcat curl https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz curl https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.15/bin/apache-tomcat-10.1.15.tar.gz解压jdk和tomcat并修改目录名称 tar -z…

Linux下利用Docker快速部署Kafka

1.摘要 在本文中,介绍了利用Docker安装Kafka的基础环境要求; 利用Docker安装zookeeper过程; 利用Docker安装Kafka过程;进入容器配置生产者和消费者过程; 演示生产者和消费者通讯; 故障排查方法。 2.基础环境准备 提前准备一台安装Linux系统的主机或虚拟机,我这里安装的是Ubu…

Photoshop使用笔记总目录

Photoshop基础学习之工具学习 一、【Photoshop界面认识】 二、【 Photoshop常用快捷键】 三、【色彩模式与颜色填充】 四、【选区】 五、【视图】 六、【常用工具组】 七、【套索工具组】 八、【快速选择工具组】 九、【裁剪工具组】 十、【图框工具组】 十一、【吸取…

二叉树中的topk问题(带图详解)

&#x1f5e1;CSDN主页&#xff1a;d1ff1cult.&#x1f5e1; &#x1f5e1;代码云仓库&#xff1a;d1ff1cult.&#x1f5e1; &#x1f5e1;文章栏目&#xff1a;数据结构专栏&#x1f5e1; TopK问题 在给定的n的数据中&#xff0c;求出这n个数据中最大的k个数字 TopK的代码&a…

C++通过指针获取类的私有成员

前言 C并没有类似java的反射机制&#xff0c;可以暴力获取类的私有成员。然而C因程序员自行管理内存&#xff0c;所以可以通过指针干任何事情。当然&#xff01;操作指针是非常危险的&#xff0c;谨慎操作&#xff01; // dome.cpp : 此文件包含 "main" 函数。程序执…

HackTheBox-Starting Point--Tier 0---Redeemer

文章目录 一 题目二 实验过程 一 题目 Tags Redis、Vulnerability Assessment、Databases、Reconnaissance、Anonymous/Guest Access译文&#xff1a;redis、漏洞评估、数据库、侦察、匿名/访客访问Connect To attack the target machine, you must be on the same network.…

微信智能对话初体验:5分钟搭建免费专属的智能对话机器人

写在前面 投入AI创业几个月了&#xff0c;AI小程序快要上线了&#xff0c;已经在备案审批中&#xff0c;想一起AI搞事情的可以联系我看是否有合作机会。昨天刷X时&#xff0c;看到有人说微信新上线了这个平台&#xff1a;https://chatbot.weixin.qq.com/&#xff0c;赶紧试试&…

VulnHub metasploitable-1

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

科技联众,互利共赢 | 卡驰科技(深圳)有限公司CEO张倍铭博士到访拓世科技集团,共探跨境电商,海外拓展无限可能

在创新的浪潮中&#xff0c;人工智能以其强大的能量持续推动着各行各业的进步&#xff0c;拓世科技集团作为人工智能领域的引领者&#xff0c;通过不断合作和交流&#xff0c;与众多领域的佼佼者共同探讨数字时代的无限可能。卡驰科技&#xff08;深圳&#xff09;有限公司作为…

跨境商城开发:10个关键步骤带你实现全球销售

在数字化时代&#xff0c;跨境电商成为企业扩大市场规模的重要策略之一。本文将揭示为何跨境商城开发是实现全球销售的绝佳途径&#xff0c;以及为什么你应该专注于跨境商城的开发与建设。 十个必备步骤&#xff0c;助你成功搭建跨境商城 第一步&#xff1a;市场研究与目标定…

pdf转jpg的方法【ps和工具方法】

pdf转jpg的方法&#xff1a; 1.photoshop办法&#xff1a; pdf直接拖入ps中&#xff0c;另存为*.Jpg文件即可 另外注意的时候&#xff0c;有时候别人给你pdf文件中包含你需要的jpg文件&#xff0c;千万不要截图进入ps中&#xff0c;直接把文件拖入ps中&#xff0c;这样的文件…

元宇宙游戏大爆炸,UTONMOS元宇宙游戏成爆品

随着元宇宙概念不断的被深化&#xff0c;目前许多用户群体已经注意到并加入元宇宙领域。而元宇宙比较火的场景有社交、游戏、虚拟会议等&#xff0c;其中元宇宙游戏开发是较火的一个赛道&#xff0c;成为元宇宙从业者们入局的方向。 相比国内其他公司还处于概念阶段&#xff0…

STM32 中断NVIC详解,配置及示例

NVIC全称 Nested Vectored Controller 嵌套向量中断控制器 它是一种硬件设备&#xff0c;用于管理和协调处理器的中断请求。NVIC可以管理多个中断请求&#xff0c;并按优先级处理它们。当一个中断请求到达时&#xff0c;NVIC会确定其优先级并决定是否应该中断当前执行的程序&am…

python自动化测试(二):获取元素定位的基本方式

目录 一、前置代码 二、通过HTML元素ID的方式去进行元素定位 三、通过HTML元素的name属性进行元素定位 四、练习一&#xff1a;打开百度登录界面并输入数据后登录 五、通过HTML元素的类名来进行元素定位 六、通过链接的文本值方式进行元素定位 七、通过部分的链接文本值…

mac电脑怎么永久性彻底删除文件?

Mac老用户都知道在我们查看Mac内存时都会发现有一条“其他文件”占比非常高&#xff0c;它是Mac储存空间中的“其他”数据包含不可移除的移动资源&#xff0c;如&#xff0c;Siri 语音、字体、词典、钥匙串和 CloudKit 数据库、系统无法删除缓存的文件等。这些“其他文件”无用…

如何使用Abaqus进行跌落仿真

跌落测试通常是主要用来模拟产品在搬运期间可能受到的自由跌落&#xff0c;考察产品抗意外冲击的能力。通常跌落高度大都根据产品重量以及可能掉落机率作为参考标准&#xff0c;落下表面应该是混凝土或钢制成的平滑、坚硬的刚性表面&#xff08;如有特殊要求应以产品规格或客户…

word英文论文检查标点是否正确

背景 英文论文&#xff0c;国内很多都是word模板&#xff0c;我们在搞完文章内容后&#xff0c;往往需要做点关于标点符号的检查。 检查内容 我个人经验来讲&#xff0c;有如下&#xff1a; . 后面有没有加空格&#xff0c;并且下一句话首字母大写。, 后面有没有加空格&…

微信小程序学习

Window导航栏 设置上拉触底的距离 概念&#xff1a;上拉触底是移动端的专有名词&#xff0c;通过手指在屏幕上的上拉滑动操作&#xff0c;从而加载更多数据的行为。 设置步骤&#xff1a; app.json -> window -> 为 onReachBottomDistance 设置新的数值 注意&#xf…

Centos7安装mongodb7.0.2教程以及基础java远程使用

由于项目性能需求&#xff0c;尝试研究mongodb的使用&#xff0c;与mysql的存储和读取性能进行比较。安装完成发现&#xff0c;其批量写入数据功能确实比mysql快&#xff0c;但是读取性能并不如mysql&#xff0c;但是由于其是文件型数据库&#xff0c;可能在内存操作点啥&#…