Android JetPack Compose初步2~实现可滚动列表的功能
Android JetPack Compose的配置参考Android JetPack Compose初步1
在本应用中定义可滚动的列表的界面,类似RecyclerView组件的显示效果。
一、定义实体类
data class Robot(val name:String,val desc:String,val imageId:Int)
定义一个实体类Robot包含三个属性分别表示姓名、描述和对应的图片资源编号。
二、定义列表单项
显示一个Robot对象的列表单项。
/*** 定义显示机器人Robot实体信息的单项* @param i Int* @param robot Robot*/
@Composable
fun RobotCard(context: Context, robot: Robot){Box(modifier = Modifier.fillMaxWidth().background(Color.Black).padding(10.dp).clip(shape = RoundedCornerShape(10.dp)).border(width = 2.dp, color = Color.Blue, shape = RoundedCornerShape(10.dp))){Row(content = {Image(painter = painterResource(id = robot.imageId),contentDescription = "${robot.name}的头像",modifier = Modifier.clip(shape = CircleShape).background(Color.Black).clickable {Toast.makeText(context,"显示${robot.name}-${robot.desc}",Toast.LENGTH_LONG).show()})Column(modifier = Modifier.padding(10.dp)){Text(text = "${robot.name}",color = Color.Black,fontWeight = FontWeight.Bold,fontSize = 16.sp)Text(text="${robot.desc}",color=Color.White,fontWeight = FontWeight.Bold,fontSize = 20.sp)}},modifier=Modifier.fillMaxWidth().background(Color.Green).padding(20.dp))}
}
三、定义可滚动列表
/*** 定义显示可滚动的机器人列表项* @param robots List<Robot>*/
@Composable
fun RobotsView(robots:List<Robot>){var reverseLayout = falsevar i = 1LazyColumn(state = rememberLazyListState(),reverseLayout = reverseLayout,verticalArrangement = if(!reverseLayout) Arrangement.Top else Arrangement.Bottom){items(robots){robot->RobotCard(LocalContext.current,robot = robot )}}
}
四、在主活动MainActivity.kt调用
class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val robots = mutableListOf<Robot>()for(i in 1..20){robots.add(Robot("机器人 $i","Android机器人",android.R.mipmap.sym_def_app_icon))}setContent {Ch04_ComposeTheme {Surface(modifier = Modifier.fillMaxSize(),color = MaterialTheme.colors.background) {Column(content = {RobotsView(robots = robots)},modifier = Modifier.fillMaxWidth().wrapContentHeight(),verticalArrangement = Arrangement.Center,horizontalAlignment = Alignment.CenterHorizontally)}}}}
}
运行结果如下:
参考文献:
Android Compose 教程 | Android 开发者 | Android Developers
Android JetPack Compose初步2~实现可滚动列表的功能相关推荐
- Android JetPack Compose初步1
一.为什么要使用JetPack Compose? 1.Android视图层次结构存在的问题 由于应用的状态会因用户交互等因素而发生变化,因此界面层次结构需要进行更新以显示当前数据.在更新时会改变 wi ...
- Android: Jetpack Compose如何禁用涟漪(水波纹)效果
系列文章目录 Android: Jetpack Compose如何禁用涟漪(水波纹)效果 Android:使用Jetpack Compose 实现Text控件跑马灯效果 Android:使用Jetpa ...
- Android Jetpack Compose
Android Jetpack Compose 一.什么是Jetpack Compose 二.关于Jetpack Compase的介绍 Jetpack Compose的特点 Jetpack Compo ...
- 学不动了,尝试用Android Jetpack Compose重写微信经典飞机大战游戏
前段时间看了TechMerger大佬写的<一气呵成:用Compose完美复刻Flappy Bird!>,甚是有趣,按耐不住那躁动的心,笔者决定跟随大佬的脚步通过写游戏的方式学习Jetpac ...
- Android Jetpack Compose——一个简单的微信界面
一个简单的微信界面 简述 效果视频 底部导航栏 导航元素 导航栏 放入插槽 绘制地图 消息列表 效果图 实现 聊天 效果图 实现 气泡背景 联系人界面 效果图 实现 好友详情 效果图 实现 发现 效果 ...
- (转)Android Jetpack Compose 最全上手指南
在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的U ...
- 原创|Android Jetpack Compose 最全上手指南
在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的U ...
- Android Jetpack Compose 最全上手指南 | 开发者说·DTalk
本文原作者: 码农西哥,原文发布于微信公众号: Android 技术杂货铺 https://mp.weixin.qq.com/s/7tKv_RamfW0rG8tZHXH_rg 在 2019 年的 G ...
- Android Jetpack Compose 播放器动画
效果: 直接上完整代码 @OptIn(ExperimentalAnimationApi::class) @Composable fun TestBottom(musicViewModel: Music ...
最新文章
- UIView 弹出动画
- wp7——sqlite数据库操作 from:http://blog.csdn.net/wp_lijin/article/details/7370790
- 【学习笔记】分析函数(开窗函数)
- 关于WM_NCHITTEST消息
- 【图像处理】彩色图像自适应对比度增强(OpenCV实现)
- 四元数组旋转_四元数应用——顺序无关的旋转混合
- python做图片浏览器_保护隐私,用Python打造自己的照片浏览器
- eclipse断点不能下一步_大盘下一步这样走,不能错过
- 从入门到精通 - Fayson带你玩转CDH
- 云和恩墨助力大地保险新核心业务系统上线,开启数字化保险4.0时代
- 《大型网站技术架构-核心原理与案例分析》(李智慧 著)第2章-大型网站架构模式
- 解决办法之Duplicate entry ‘1‘ for key ‘PRIMARY‘
- 整理--linux设备驱动模型
- MYSQL安装完成后,需要手动安装workbench
- “太上,不知有之;其次,亲而誉之;其次,畏之;其次,侮之。”
- MVC |分部视图 PartialView()
- Unity游戏设计与实现 南梦宫一线程序员的开发实例
- NYOJ-284 坦克大战
- PTA 浙大版《C语言程序设计(第3版)》题目集
- 【数据集】中国各类水文专业常用数据集合集