Jetpack Compose 是用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,使用更少的代码、强大的工具和直观的 Kotlin API,快速让应用生动而精彩。Compose 使用全新的组件—可组合函数 Composable 来布局界面。

Jetpack Compose 可将状态转换为界面,这个过程分为三步: 组合、布局、绘制。组合阶段执行 可组合函数,这些函数可以生成界面,从而创建界面树。例如,下图中的 SearchResult 函数会生成对应的界面树

布局动画示例

由于具备更强的性能保证,Compose 提供了新的可能性,例如为布局添加动画。Layout composable 不仅可以创建通用布局,还能创建出符合应用设计需求的专用布局。以 Jetsnack 应用中的自定义底部导航为例,在该设计中,如果某项目被选中,则显示标签;如果未被选中,则只显示图标。而且,设计还需要让项目的尺寸和位置根据当前选择状态执行动画

单遍布局模型的设计效果是,任何只影响项目的放置而不影响测量的修改都可以单独执行。以 Jetsnack 为例:

参考

  • Jetpack Compose 入门文档
  • Jetpack Compose 学习路线
  • Jetpack Compose 案例项目

移动开发 Jetpack Compose 组件布局相关推荐

  1. Flutter开发之——多组件布局容器-Stack和IndexedStack及Positioned

    IndexedStack是Stack的子类,Stack是将所有的子组件叠加显示,而IndexedStack只显示指定的子组件 Positioned组件通常会作为Stack组件的子组件使用,可以设置绝对 ...

  2. Android JetPack Compose组件中Scaffold的应用

    一. 创建Activity Empty Compose模块 在Android Studio中创建一个新的项目,选择一个Empty Compose Activity,如下图所示: 二.搭建Scaffol ...

  3. 结合Navigation组件实现JetPack Compose的界面导航

    Android JetPack Compose可以利用Navigation组件来实现导航 一.Navigation组件的配置 新建项目,选择Empty Compose Activity. 然后,在项目 ...

  4. Android Jetpack Compose

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

  5. Jetpack Compose 自定义绘制——高仿Keep周运动数据页面

    废话之前先上图吧,如果不是有人告诉,你可以一眼看出哪个是真哪个是假吗? 仿制整个页面(仅仅页面)大概花了我两个小时,不过仅仅是静态的.不可点击的.图有形似而无功能. 自定义绘制 Jetpack Com ...

  6. 安卓开发: Jetpack compose + kotlin 实现 俄罗斯方块游戏

    文章目录 前言 俄罗斯方块开发文档 1.摘要 2.开发工具选取 2.1.Compose 的自身优点 2.2.数据驱动界面 3.设计需求 3.1.功能需求 3.1.1.基本游戏功能 3.1.2.拓展功能 ...

  7. 告别XML,Android新声明式UI框架《Jetpack Compose入门到精通》最全开发指南

    什么是Jetpack Compose? Jetpack Compose是Android的新声明式UI框架.长期以来, Android 开发人员习惯于使用带有状态视图的xml编写UI,这些状态视图通过逐 ...

  8. 《Jetpack Compose 从入门到实战》带你踏上 Compose 开发之旅~

    写书的契机 Jetpack Compose 首次亮相于 2019 年的 Google I/O 大会,彼时的我正在为抖音客户端研发一款基于原生视图渲染的声明式 UI 框架,由于声明式开发理念在当时还过于 ...

  9. 重磅首发!Jetpack Compose 完全开发手册,从入门到精通!

    前 言 Jetpack 架构组件 及 标准化开发模式 的确立,意味着 Android 开发已步入成熟阶段.现在的Android岗招人的时候也非常看重应试者对 Jetpack 架构组件的理解程度. 今天 ...

最新文章

  1. 代码的印象派:写点好代码吧
  2. [转]互联网产品经理必上的九个资讯+分析类网站
  3. nyoj1180Maze
  4. java ean13 条形码_【教程】Spire.Barcode 教程:如何在C#中创建EAN-13条码
  5. 前端学习(2685):重读vue电商网站6之如何重置表单
  6. 配置tomcat 7控制台账号
  7. Manjaro下显卡相关的命令搜集
  8. 关于联合体输出的问题(是否小端模式)
  9. Java多线程知识整理
  10. 默纳克系统服务器怎么查故障,默纳克系统NICE3000和NICE3000new故障历史记录查询方法...
  11. python 006 __ 小斌文档 | 特殊字符的使用
  12. 定制MACD背离副图
  13. 电商订单后台管理系统
  14. 《C指针》学习笔记( 第四、五章)指针与字符串、指针与多维数组
  15. 安卓动态修改系统状态栏背景和文字颜色,以及动态显示或隐藏系统状态栏
  16. Android App启动流程详解
  17. 集成七牛云储存-上传图片Demo
  18. Python 1 数据类型介绍
  19. python语法错误类型_python常见报错类型和异常处理
  20. 从“心”认识Vue(五):父组件与子组件

热门文章

  1. phpnow修改默认站点根目录的方法
  2. 基于组织目标采用合适的敏捷方法
  3. Android 模块化编程之引用本地的aar
  4. 在 Delphi 下使用 DirectSound (2): 查看设备性能
  5. 如何让应用程序托盘化
  6. Q95:纹理映射(Texture Mapping)(2)——圆柱面
  7. python报表自动化系列 - 拆分一个字符串中的数字和字母
  8. oracle hang analyze,Oracle hanganalyze工具的使用
  9. tp5 保存图片背景黑色_少女心背景图 | 风环绕世界百圈,不如见你时心动
  10. 标准模块 threading