首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

开源 | 如何写一个好用的 JetPack Compose 状态页组件

关于开发中常见的状态页组件,我们已经见了很多,但是在 JetPack Compose 中该如何去写呢?虽然也有大佬写了相关demo ,但是如果要应用到实际中,不免有些捉襟见肘 。...本篇要解决的就是如何定制一个符合 实际开发 的状态页工具,并分析具体原理与设计思路。...看完基本条件,其实也都不难,在 View 中设计一个状态页组件,大家都知道怎么做,但是 Compose 呢? 那么我们下面就开始构思一下,如何设计这个状态页组件 StateX。...而在 compose 中,重组会执行所有调用的地方,并判断是否需要执行,我们必须要考虑如何避免重复的重组。...一切就是这么简单,在 compose 中如何使用状态页,已经分享大家了,至于大家要怎么改,可以参考 StateX 。

1.1K10

开源 | 如何写一个好用的 JetPack Compose 状态页组件

关于开发中常见的状态页组件,我们已经见了很多,但是在 JetPack Compose 中该如何去写呢?虽然也有大佬写了相关demo ,但是如果要应用到实际中,不免有些捉襟见肘 。...本篇要解决的就是如何定制一个符合 实际开发 的状态页工具,并分析具体原理与设计思路。...那么我们下面就开始构思一下,如何设计这个状态页组件 StateX。 基本思路 其实只要写过 compose 的代码,应该都明白,其实更简单了。...而在 compose 中,重组会执行所有调用的地方,并判断是否需要执行,我们必须要考虑如何避免重复的重组。...一切就是这么简单,在 compose 中如何使用状态页,已经分享大家了,至于大家要怎么改,可以参考 StateX 。

81420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    Compose 中,如何来实现垂直布局呢?...@Composable fun NewsStory() { Column { // 添加Column,使布局垂直排列 Text("我超❤️JetPack Compose的!")...modifier:使你可以进行其他格式更改。在这种情况下,我们将应用一个Spacing修改器,该设置将Cloumn与周围的视图产生间距。 4. 如何显示一张图片?...在原来的安卓原生布局中,显示图片有相应的控件ImageView,设置本地图片地址或者Bitmap就能展示,在Jetpack Compose 中该如何显示图片呢?...六、Compose 布局实时预览 从Android Studio 4.0 开始,提供了在IDE中预览composable函数的功能,不用像以前那样,要先下载一个模拟器,然后将app状态模拟器上,运行app

    6.4K20

    深度解析 Jetpack Compose 布局

    Jetpack Compose 是用于构建原生 Android 界面的新工具包。...布局模型 Compose 布局系统的目标是提供易于创建的布局,尤其是 自定义布局。这要求布局系统具备强大的功能,使开发者能创建应用所需的任何布局,并且让布局具备优异的性能。...接下来,我们来看看 Compose 的布局模型 是如何实现这些目标的。 Jetpack Compose 可将状态转换为界面,这个过程分为三步: 组合、布局、绘制。...如需详细了解固有特性测量,请参阅 Jetpack Compose 中的布局 Codelab 中的 "固有特性" 部分。...如需了解更多,请查阅以下列出的资源: Jetpack Compose 使用入门文档 Jetpack Compose 学习路线图 Jetpack Compose 相关示例

    2.1K30

    Jetpack Compose 现已支持 Material You | 2021 Android 开发者峰会

    更多 Jetpack Compose 的指南和文档 我们发布了大量关于 Jetpack Compose 的技术分享,深入探讨了布局、动画和状态,展示了如何在 Wear OS、主屏幕微件 (widget)...和大屏设备中使用 Compose,并举办了 3 场 Code-Alongs 活动;让您可以实时编写您的首个 Compose 应用、迁移现有应用或在 Wear OS 上使用 Compose。...最后我们举行了专题讨论会,并在会上回答了与 Jetpack Compose 和 Material 相关的 大家 最关心的问题。...Handoff 最后,我们 抢先介绍 了一些用于设计接力 (Handoff) 的新工具,使您能够导出在 Figma 中设计的组件,以生成通用的 Jetpack Compose 代码。...很高兴看到越来越多的应用开始在生产环境中使用 Jetpack Compose,我们会继续构建我们的功能路线图,让您可以使用 Compose 构建跨设备的卓越应用。

    2.7K30

    聚焦 Android 11: UI 与 Compose

    重大更新: Jetpack Compose Alpha Jetpack Compose 的 第一个 alpha 版本 已经发布,这是 Android 的现代化 UI 工具包,可以访问原生平台 API。...Compose 将 Kotlin 的强大功能与响应式编程模型相结合,使界面构建更简单、更快速。我们也希望您的 反馈 能帮助我们了解您构建应用所需的 API,开始试用吧!...要了解响应式思维方式以及如何使用 Compose 构建应用,可以观看视频 了解 Compose 的编程思想。...您也可以观看视频,通过开源示例应用中的具体示例,了解 Jetpack Compose 如何简化 Android 界面。...最后,您可以在 视频 "Compose for Existing" 应用 中,了解 Jetpack Compose 和基于视图的 UI 如何共存和交互,使您轻松按照自己的节奏采用 Compose。

    1.7K30

    Jetpack Compose Alpha 版现已发布!

    起初,我们计划通过一系列的 Android Jetpack 开发库解决 Android 开发中最困难、最常见的问题,帮助开发者们在所有的 Android 版本上运行高质量的应用。...添加了一系列新功能来帮助您使用 Compose 构建应用: Compose 代码自动补全 Compose 预览注解 部署单个可组合的组件到任何设备上 交互式 Compose 预览 可以生成代码的 Kotlin...Compose 的编程思想 Compose 使用的编程模型与 Android 上现有的构建 UI 的模型完全不同。...示例应用 展示了如何在 Compose 嵌入一个 MapView 观看视频: 将 Compose 加入现有的应用:https://youtu.be/PjQdFmiDgwk 强大的工具 Android...自我们 去年 开源 Jetpack Compose 以来,众多开发者为我们提供了宝贵反馈,使我们有了今天的成就,感谢大家!

    4.1K30

    掌握 Jetpack Compose 中的 State,看这篇就够了

    State的值可以是任意类型:如像Boolean或者String一样的简单的基础类型,也可以是一个包含整个渲染到屏幕上的 UI 状态的复杂数据类型。...= MyState('2', 3)}Jetpack Compose 里如何构造状态State实例?...附加内容:在 Jetpack Compose 中,如何使用 Kotlin 的 Flow、RxJava 或者 LiveData 表示状态?...要做到这点,需要引入相关的拓展方法。这些拓展方法会帮我们把响应式的实例转换成 Jetpack Compose 中的状态实例。如何在 Jetpack Compose 中使用 Kotlin 的 Flow?...:InputText 的延迟和对应的规避方式如何在 ViewModel 中表示状态如何将 Android 中其他表示类型的状态转成 Jetpack Compose 中的状态希望能对你有帮助。

    8.5K111

    Jetpack Compose+架构=优秀APP?

    前言 Jetpack Compose是Android推出的新一代声明式UI框架,Compose库是用响应式编程的方式对View进行构建,用更少更直观的代码拥有更强大的功能,同时还能提高开发速度。...,使用框架可以降低程序之间的依赖性和耦合性,使重复性达到最高。...MVVM MVVM(Model-View-ViewModel)其实就是MVC(Model-View-Controller)的增强版,本质上和MVC没有什么区别,只是代码的位置变动而已。...总的来说与Compose最为契合的架构还是MVVM。MVVM凭借着Controller清晰简洁、方便测试、开发解耦等优势深得各开发大佬的青睐。 ##如何快速入门 Compose ?...为了帮助大家系统的学习,在这里给大家分享一份谷歌大佬整理的《Jetpack Compose 入门到精通》,希望可以帮助大家快速入门Compose。 第一章 初识 Jetpack Compose 1.

    1.7K20

    Row本身是不支持滚动,如何实现滚动

    (rememberScrollState())) { } Modifier.horizontalScroll() 水平滚动 Modifier.verticalScroll() 垂直滚动 注意:compose...似乎不支持一个水平滚动嵌套垂直滚动(或垂直滚动中嵌套水平滚动),所以相应布局需要合理设计 此外,提及下,如果想使用像ListView或RecyclerView那样的列表组件,在Compose中可以使用LazyRow...或LazyColumn,这部分内容之后会讲解到,敬请期待 verticalAlignmentment 取值有三个值: Alignment.CenterVertically 居中 Alignment.Top...= null, elevation: Dp = 1.dp, content: @Composable () -> Unit ) shape 形状,使用详见Jetpack Compose学习...border 边框,使用详见Jetpack Compose学习(3)——图标(Icon) 按钮(Button) 输入框(TextField) 的使用 | Stars-One的杂货小窝 elevation

    1.8K30

    Jetpack Compose 1.0 正式发布!打造原生 UI 的 Android 现代工具包

    但这还不是全部,我们一直在与一些顶级的应用开发者合作,他们的反馈和支持帮助我们使 1.0 版本更加强大。...您可以只在屏幕上添加一个按钮,也把自己创建的自定义视图保留在现在用 Compose 打造的界面中。 Jetpack 集成 : Compose 和大家熟知且喜爱的 Jetpack 开发库 天然整合。...Material : Compose 提供了 Material Design 组件和 主题 的实现,使您能够轻松构建符合您的品牌个性的美观应用。...动画 : Compose 简明的 动画 API 让您可以更轻松地打造出让用户眼前一亮的体验。 新工具 Jetpack Compose 的完全声明式方法从根本上改变了用户界面的开发方式。...,使组件的开发更容易,再也不必先将整个应用部署到设备中了。

    1.9K20

    安卓软件开发:学习Jetpack Compose实现Navigation组件App

    3.3 布局和组件的灵活使用 Jetpack Compose 提供了丰富的 UI 组件和布局工具,但由于它是声明式的,我们必须思考如何将 UI 组件与状态管理紧密结合。...尤其是在复杂布局和动态更新时,需要考虑如何合理地Jetpack Compose 提供了丰富的 UI 组件和布局工具,但由于声明式特性,我们必须思考如何把 UI 组件与状态管理紧密结合。...四、学习笔记 4.1 掌握Jetpack Compose的基础 在项目开发初期,首先需要学习 Jetpack Compose 的基本语法和使用方式。...五、总结 通过这个简单的Demo,讲解了 Jetpack Compose 和 Jetpack Navigation 的使用方法,理解了声明式 UI 开发的优势。...展望未来,Jetpack Compose 很快要成为安卓开发的主流,它的声明式开发模式使 UI 和业务逻辑分离得很彻底。这次Demo开发让我很熟悉如何在实际App中使用Compose的上手方法。

    40282

    一起看 IO | Jetpack Compose 中的新特性

    Jetpack Compose 1.0 正式版已经发布快一年的时间了,我们看到社区正以极大的热情采纳和使用 Compose: Kotlin 语法的简洁性以及使开发界面变得更快速、更简单的声明式开发方式得到了广大开发者们的赞赏...与此同时,Twitter 也已经在应用的不同部分使用了 Jetpack Compose 并从中受益,因为 "Compose 让我们更容易定义自己的组件,并使它们的 API 更明确、灵活和直观。"...我们很高兴地看到这些团队在大规模和复杂的生产环境中仔细地评估并使用了 Compose,所带来的结果也不仅是让界面开发更清晰有趣,也带来了更多工程上的收益。...例如,您可以通过该 文档 了解关于如何编写和配置您的 Compose 应用以实现最佳性能的建议。...我们期待您能像我们一样为这些新特性感到兴奋,如果您尚未开始,那么现在正是学习 Jetpack Compose 的好时机,了解它如何适配您的团队和开发过程,这样您便能体验到提高效率和开发者生产力所带来的好处

    2.2K20

    Android Compose开发

    好处 Compose 编译后不是转化为原生的 Android 上的 View 去显示,而是依赖于平台的Canvas ,在这点上和 Flutter 有点相似,简单地说可以理解为 Compose 是全新的一套...入门 Jetpack Compose 中的 match_parent 相当于什么?...Developers 原创:写给初学者的Jetpack Compose教程,基础控件和布局 原创:写给初学者的Jetpack Compose教程,Modifier 原创:写给初学者的Jetpack Compose...单遍测量对性能有利,使 Compose 能够高效地处理较深的界面树。 父节点会在其子节点之前进行测量,但会在其子节点的尺寸和放置位置确定之后再对自身进行调整。...这些可组合项只会呈现屏幕上显示的元素,因此,对于较长的列表,使用它们会非常高效。

    36210

    使用 Jetpack Compose 提升 Play 商店的用户体验

    为了让 Jetpack Compose 的使用体验更上一层楼,以及了解大家对 Compose 开发、学习方面的内容需求,这里诚邀您参与 Jetpack Compose 使用情况调研, 点击这里 即刻参与调研...在屏幕上渲染单个界面组件很快,但是将整个 Compose 框架加载到应用内存中所用的端到端时间却很长。 Play 商店采用 Compose 后最大的性能改进之一来自 基准配置文件 的开发。...重复使用界面组件 是使 Compose 在渲染方面表现出色的 核心机制,尤其是在滚动情况下。...在最初的集成实验中,我们遇到了双栈问题: 在单个用户会话中同时运行 Compose 和视图类渲染非常占用内存,尤其是在低端设备上。...将 Compose 从 Android 框架中分离出来减少了我们团队直接为 Jetpack Compose 做出贡献的开销,从而缩短了改进工作的周转时间,使所有开发者受益。

    3.2K40

    手写原生代码专题 | 简易手写画板(二)

    0,0); ctx.lineTo(100, 100); ctx.stroke(); 1.3 绘制圆形 CanvasRenderingContext2D.arc() 是 Canvas 2D API 绘制圆弧路径的方法...圆弧路径的圆心在 (x, y) 位置,半径为 r ,根据 anticlockwise (默认为顺时针)指定的方向从 startAngle 开始绘制,到 endAngle 结束。...三、编写CSS代码 接下来,我们来编写相关的CSS样式,代码很简单,这里只是简单说明下: 首先定义全局为 box-sizing: border-box 的盒子模型,然后使用弹性布局让画布容器垂直水平居中...x,y 变量 然后我们定义画圆形、画直线的相关方法:drawCircle(x,y)、drawLine(x1,y1,x2,y2) 接着在画布上定义监听 mousedown 的方法,初始化鼠标位置的X,Y的值...,想必大家都熟悉了如何手写一个简易的画布,基于这个基础我们可以增加更多的功能,比如三角图形、椭圆等形状的绘制,并能拖动形状,大家可以抽空完善下。

    1.5K20

    Jetpack Compose for Desktop: 里程碑1发布

    在深入详解 Jetpack Compose | 优化 UI 构建 中谷歌介绍了为什么要设计 Jetpack Compose 来完成原生 Android 的开发,如今 Jetpack Compose for...上使用 Jetpack Compose 的能力直接转移到 Compose for Desktop ,反之亦然。...实际上 Compose for Desktop 的核心是与 Jetpack Compose 合作开发的,以确这两种技术可以一起发展,这也使得在桌面和 Android 之间 UI 实现共享成为可能。...学习 Compose for Desktop 如果要尝试一下,推荐通过阅读阅读入门教程,该教程介绍了如何设置和运行由Compose for Desktop 所需的基本步骤,另外在这里也可以查看的其他教程...在 #compose-desktop 中,就可以找到有关 Compose for Desktop 的讨论,在#compose 中,也可以讨论涉及 Android 上的 Compose 和 Jetpack

    4.8K30

    谷歌大佬强势分享《Jetpack Compose 权威指南》,带你参透声明式UI的终极奥义!

    Android Jetpack 的支持 在 Compose 刚刚发布的时候,Android Jetpack 中的很多其他库都第一时间给予了 Compose 支持,从而丰富了 Compose 的开发生态。...目前,能够直接在 Compose 上使用的 Jetpack 库有:Navigation、Paging、ViewModel、LiveData、hilt 、lifecycle 理论上来讲,Android Jetpack...上跟 UI 不相关的库 Compose 应该都是支持的,在我写的Hoo中,就使用了Paging、Navigation、ViewModel和LiveData等 Android Jetpack 库,再有协程和...二 如何快速学习Compose 接下来,我将给大家介绍一份谷歌大佬强势分享《Jetpack Compose 权威指南》,手把手教大家Jetpack Compose从入门到精通。...Jetpack Compose应用1 开始前的准备 创建DEMO 遇到的问题 2. Jetpack Compose应用2 3.

    4.5K30

    Jetpack Compose有学的必要吗?未来前景将会怎样?

    image.png 前言 在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack...Compose 出生的目的:就是为了重新定义 Android 上 UI 的编写方式,为了「提高 Android 原生的 UI 开发效率,让 Android 的 UI 开发方式能跟上时代的步伐」。...image.png 如何学习 这里给大家分享一份由谷歌大佬亲自整理的一份《Jetpack Compose 入门到精通》PDF学习手册,外网分享找到的,我自己整理尝试翻译了下,有需要的朋友,可以直接划到文末自取...第一章 初识 Jetpack Compose 1. 为什么我们需要一个新的UI 工具? 2. Jetpack Compose的着重点 3. API 设计 4. Compose API 的原则 5....插槽API 这里不是教你Jetpack Compose 的一些基本使用方法,而是为啥我们需要Jetpack Compose 的一些简洁,让大家对Jetpack Compose 有更深层次的了解...

    3.2K30
    领券