试着用compose去做这样一个可以进行富文本编辑的项目。compose渲染页面非常的快,像我手机这样装满了图片,打开我实现的相册,没有任何分相册的情况,下滑翻动完全不卡顿。

这样的带调色盘的富文本编辑功能也非常好实现,举例来说,由于compose所有的组件都是方法,所以我想做一个下面那种带滑块的条,我只需要在一个Box里面放上另一个Box。

另一个Box可以拖动就可以了。

再比如编辑的显示页面,完全不需要像以前一样考虑用什么布局,怎么刷新布局中的子控件。

而comoose的实现方式就是我的数据是两个list,一个用来存图片相关,一个用来存文字相关。然后我选择好了要添加的东西,就把数据添加到数组。之后更新livedata数据控制页面状态改变,我的页面就完全更新了。

并且我测试了一下,即使在页面上添加非常多的可拖动的box页面都不会卡顿。目前的demo还比较粗糙。也许还有很多代码并不是最好的写法。

关于compose的ui机制。我觉得完全可以直接从服务器来载入数据。控制应用的显示方式以及跳转逻辑。甚至根据数据去动态的生成ui。

源码已经上传到github https://github.com/roofroot/MyComposeTest  。有什么写的不好的地方,欢迎评论区留言。后面有空会持续更新这个项目

争取把它做成也给完整,美观的应用。

关于compose的相关推荐

  1. Docker compose 容器编排

    1. 概述 问题:如果要使用 Docker 运行 LNMP 架构,那么 Nginx.MySQL.PHP. Linux三个服务运行在一个容器里,还是运行在多个容器里呢? 答案是都可以. 你可以分别放在三 ...

  2. Docker核心技术之Docker Compose

    一.Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的 ...

  3. operate函数_跟着 redux 学 compose组合函数

    ▲ 点击上方蓝字关注我 ▲ 把你的心 我的心串一串 串一株幸运草 串一个同心圆 文 / 景朝霞 来源公号 / 朝霞的光影笔记 ID / zhaoxiajingjing 目录0 / 热热身1 / red ...

  4. Docker Compose 1.18.0 之服务编排详解

    一个使用Docker容器的应用,通常由多个容器组成.使用Docker Compose,不再需要使用shell脚本来启动容器.在配置文件中,所有的容器通过services来定义,然后使用docker-c ...

  5. Centos7 Docker Compose部署mysql5.7

    1 . 创建docker-compose.yml文件 version: '3' services:mysql:restart: alwaysimage: mysql:5.7.22container_n ...

  6. Docker Compose安装

    一 .  Docker Compose概述 Docker Compose是一个用于定义和运行多个容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后 , ...

  7. Docker(八):Docker Compose

    Docker Compose Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务.然 ...

  8. Docker compose多容器管理

    前言 Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr). Docker Compose 运行的目录下的所有文件(doc ...

  9. ​第一本 Compose 图书上市,联想大咖教你学会 Android 全新 UI 编程

    朱江 | 现任联想(北京)有限公司 Android 开发工程师,从事 Android 开发工作多年,有丰富的项目经验,负责和参与开发过多款移动应用程序,同时还是多个开源项目的作者.2017 年开始在 ...

  10. Docker Compose—简化复杂容器应用的利器

    Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compo ...

最新文章

  1. ASP.NET无刷新客户端回调
  2. Linux查看系统开机时间(转)
  3. 九度OJ 区间问题 10000个随机正负数生成
  4. ts文件编译后变量在vscode里报错
  5. 湊湊很好,但依旧“难撑”呷哺呷哺的野心
  6. 1. ReactJS基础(开发环境搭建)
  7. 代码设置Shape和Selector
  8. CRMEB v3.2微信小程序商城前端
  9. C#LeetCode刷题之#13-罗马数字转整数(Roman to Integer)
  10. sql常用语法命令及函数_SQL右连接命令:语法示例
  11. MVVM项目中的动态DataGrid单元样式
  12. 大众点评运维架构图文详解
  13. HashSet的遍历和使用特点
  14. android 使用signingConfigs进行打包
  15. ipad开发对表格视图的基本实现
  16. Missionaries from the global south try to save the godless West
  17. 服务端开发的实习总结
  18. 面试官说“一开始工资不会给你太高,你可以接受吗?” 怎么怼回去??
  19. 旅行照片剪辑--成都与天津篇
  20. get和post的不同:

热门文章

  1. 苹果xr十大隐藏功能_苹果手机隐藏的功能
  2. 高等数学(第七版)同济大学 习题10-2(中5题) 个人解答
  3. 2023年,web前端工程师20道Vue面试题及解析
  4. 使用mmdetection训练自己的coco数据集(免费分享自制数据集文件)
  5. jdk1.7新特性: 自动关闭IO流
  6. 设计模式 —— Builder 模式
  7. 中国互联网金融:浪潮还是浪花?
  8. 黑马程序员——IOS基础---Mac OS X
  9. 神经网络matlab实现
  10. 压缩指定大小的BitMap