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~实现可滚动列表的功能相关推荐

  1. Android JetPack Compose初步1

    一.为什么要使用JetPack Compose? 1.Android视图层次结构存在的问题 由于应用的状态会因用户交互等因素而发生变化,因此界面层次结构需要进行更新以显示当前数据.在更新时会改变 wi ...

  2. Android: Jetpack Compose如何禁用涟漪(水波纹)效果

    系列文章目录 Android: Jetpack Compose如何禁用涟漪(水波纹)效果 Android:使用Jetpack Compose 实现Text控件跑马灯效果 Android:使用Jetpa ...

  3. Android Jetpack Compose

    Android Jetpack Compose 一.什么是Jetpack Compose 二.关于Jetpack Compase的介绍 Jetpack Compose的特点 Jetpack Compo ...

  4. 学不动了,尝试用Android Jetpack Compose重写微信经典飞机大战游戏

    前段时间看了TechMerger大佬写的<一气呵成:用Compose完美复刻Flappy Bird!>,甚是有趣,按耐不住那躁动的心,笔者决定跟随大佬的脚步通过写游戏的方式学习Jetpac ...

  5. Android Jetpack Compose——一个简单的微信界面

    一个简单的微信界面 简述 效果视频 底部导航栏 导航元素 导航栏 放入插槽 绘制地图 消息列表 效果图 实现 聊天 效果图 实现 气泡背景 联系人界面 效果图 实现 好友详情 效果图 实现 发现 效果 ...

  6. (转)Android Jetpack Compose 最全上手指南

    在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的U ...

  7. 原创|Android Jetpack Compose 最全上手指南

    在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的U ...

  8. Android Jetpack Compose 最全上手指南 | 开发者说·DTalk

    本文原作者: 码农西哥,原文发布于微信公众号: Android 技术杂货铺  https://mp.weixin.qq.com/s/7tKv_RamfW0rG8tZHXH_rg 在 2019 年的 G ...

  9. Android Jetpack Compose 播放器动画

    效果: 直接上完整代码 @OptIn(ExperimentalAnimationApi::class) @Composable fun TestBottom(musicViewModel: Music ...

最新文章

  1. UIView 弹出动画
  2. wp7——sqlite数据库操作 from:http://blog.csdn.net/wp_lijin/article/details/7370790
  3. 【学习笔记】分析函数(开窗函数)
  4. 关于WM_NCHITTEST消息
  5. 【图像处理】彩色图像自适应对比度增强(OpenCV实现)
  6. 四元数组旋转_四元数应用——顺序无关的旋转混合
  7. python做图片浏览器_保护隐私,用Python打造自己的照片浏览器
  8. eclipse断点不能下一步_大盘下一步这样走,不能错过
  9. 从入门到精通 - Fayson带你玩转CDH
  10. 云和恩墨助力大地保险新核心业务系统上线,开启数字化保险4.0时代
  11. 《大型网站技术架构-核心原理与案例分析》(李智慧 著)第2章-大型网站架构模式
  12. 解决办法之Duplicate entry ‘1‘ for key ‘PRIMARY‘
  13. 整理--linux设备驱动模型
  14. MYSQL安装完成后,需要手动安装workbench
  15. “太上,不知有之;其次,亲而誉之;其次,畏之;其次,侮之。”
  16. MVC |分部视图 PartialView()
  17. Unity游戏设计与实现 南梦宫一线程序员的开发实例
  18. NYOJ-284 坦克大战
  19. PTA 浙大版《C语言程序设计(第3版)》题目集
  20. 【数据集】中国各类水文专业常用数据集合集

热门文章

  1. 存在着才有机会创造奇迹
  2. 【热门主题:鬼泣5游戏xp主题】
  3. 解决word合并打不开的问题
  4. 【杰理AC696X】上电DAC PO声处理
  5. 最美的清晨:带您遇见不一样的云台山
  6. Python中单引号、双引号和三引号作用及区别
  7. phalcon executeQuery使用
  8. 怎么让美容院生意火爆
  9. 开源新生代的成长之路:从校园到开源,需要迈过哪些挑战?
  10. 英特尔 NUC X15 笔记本 评测 英特尔上架新款 NUC X15 笔记本参数配置