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

Android Compose开发

Developers 原创:写给初学者Jetpack Compose教程,基础控件和布局 原创:写给初学者Jetpack Compose教程,Modifier 原创:写给初学者Jetpack Compose...返回 View 类型)。...您可以使用修饰符来执行以下操作: 更改可组合项大小、布局、行为和外观 添加信息,如无障碍标签 处理用户输入 添加高级互动,使元素可点击、可滚动、可拖动或可缩放 修饰符是标准 Kotlin 对象。...偏移量 要相对于原始位置放置布局,请添加 offset 修饰符,并在 x 轴和 y 轴中设置偏移量。偏移量可以是正数,也可以是非正数。...它控制了视图在屏幕上显示顺序。具有较高 zIndex 值视图将显示在具有较低 zIndex 值视图之上。 默认情况下,视图 zIndex 值为0。

23910

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

这个过程是自动,不需要我们手动调用setText或setColor之类方法。为了实现响应式,Jetpack Compose 使用State对象来感知 UI 状态变化。...为了让 Compose 能够感知到状态变化,状态值需要包装到一个State对象里。Jetpack Compose 提供mutableStateOf()函数就能帮我们完成这个包装操作。...不要在 State 实例之外操作状态值, Compose 会无法感知到对象内容变化,因此也无法更新自动更新 UI 。...通过修改状态更新可组合项目随着我们越多地使用 Compose 自带可组合项(Scaffolds、BottomSheet、Drawer等),我们会意识到在 Jetpack Compose 中状态是无处不在...要做到这点,需要引入相关拓展方法。这些拓展方法会帮我们把响应式实例转换成 Jetpack Compose状态实例。如何在 Jetpack Compose 中使用 Kotlin Flow?

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

Jetpack-Compose 学习笔记(五)—— State 状态是个啥?又是新概念?

前面几篇笔记讲了那么多内容,都是基于静态界面的展示来说,即给我一个不变数据,然后将它展示出来。如何在 Compose 中构建一个随数据而变化动态界面呢?相信看完这篇就知道了。...虽然提出了许多架构思想, MVC、MVP、MVVM 等,一定程度上解耦了界面与数据处理逻辑,但是架构本身就具有一定复杂性,且对于后续维护成本也相对较高,所以 Compose 一开始就将界面与数据分开来...这个关键字作用意思一样,“记住” 它所修饰对象值。...所以,不要在有添加或移除 Composable 组件情况下,使用 remember 将重要内容存储在 Composable 组件中,因为添加和移除都会使得数据丢失。 5....6.3 MapSaver Compose 还考虑到有些情况下 Parcelize 不适用场景,那么还可以使用 MapSaver 来定义自己存储和恢复规则,规定如何把对象转为可保存到 Bundle 中

2K30

Jetpack-Compose 学习笔记(三)—— Compose 自定义“View”

我们也可以通过自定义 View 来创建一些系统没有提供给我们具有特殊功能 View。...width 直接由 Placeable 对象就可获得(placeable.width),而高度由示意图可以得出计算方法:height = placeable.height + d,即普通 Text 高度再加上...在这里我们自定义 Layout 摆放比较简单,就是 Y 轴上有个偏移量,X 轴上没有偏移,看图2 也可直观得知。 那么如何使用呢?...之前所述,我们第一件事就是测量 children,并且只能测量一次。...官方 Column 布局默认情况下宽高是尽可能小占用布局,类似于 wrap_content;而 MyOwnColumn 是尽可能大占用布局,类似于 match_parent。

1.2K21

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

因为Android Studio 4.0 添加了对Jetpack Compose 支持,Compose 模版和Compose 及时预览。...在这种情况下,我们将应用一个Spacing修改器,该设置将Cloumn与周围视图产生间距。 4. 如何显示一张图片?...要设置图形样式,请将其放入Container(又一个和flutter中一样控件) Container: 一个通用内容对象,用于保存和安排其他UI元素。然后,你可以将大小和位置设置应用于容器。...height : 设置Container容器高度,height属性优先级高于expanded,因此会覆盖expanded,如上面的例子,设置height为180dp,也就是容器宽为控件宽度,高为180dp...本例所示,我们设置显示最大行数为2,多于部分截断处理: Text("我超❤️JetPack Compose!写起来简单,复用性又强,可以抽取很多组件来复用,不用管理复杂状态变更!"

6.1K20

compose--初入compose、资源获取、标准控件与布局

这部分内容都是概念性,但是贯穿整个compose学习,应该进行着重深入理解 1....compose,也可以查看官方文档-快速入门:https://developer.android.google.cn/jetpack/compose/setup 1.创建项目 我这边尝鲜使用MD3风格项目...,一个是value,一个是onValueChange ,结合之前重组概念来理解,每次重组都会重新调用可组合函数,所以输入框内容value必须是一个全局对象,在compose中,可以使用remember...,TextFieldValue具有更好自定义性,使用AnnotatedString使文本具有样式、TextRange指定光标位置: @Immutable class TextFieldValue constructor...表示允许组件优先查询下子组件高度,所以设置给组件,这边给Row设置Modifier: @Preview @Composable fun MyDivider2() { Row(modifier

5.7K30

Jetpack-Compose 学习笔记(二)—— Compose 布局你学会了么?

覆盖颜色取决于这个 Surface 高度,以及任何级 Surface 设置 LocalAbsoluteElevation。...而 guideline2 是在竖直方向上距离屏幕高度三分之一位置,需要把布局高度设置为屏幕高度才可以实现。...用法总结起来如下列所示: createGuidelineFromStart(offset: Dp):根据左侧距离布局偏移量来设置 guideline 位置 createGuidelineFromStart...这个例子中对 Text 右边界做了限制,所以使用这个属性可以控制 Text 右边界只能到达布局右边界,不能超出屏幕; wrapContent:Dimension 默认值,即布局大小只根据内容所设置,...参考文献 https://developer.android.google.cn/codelabs/jetpack-compose-layouts?

2.8K31

【译】JetPack Compose for Desktop 初体验

它需要几个参数来初步配置窗口属性, title、size、location、centered、content 等。 在这种情况下,我们只需要把值传给内容参数,其余参数保留默认值即可。...在接下来代码中,我们声明了一个具有 remember 功能 text 变量,其初始值为 Hello, World!。如下所示: 在一个声明式 UI 系统中,代码本身就描述了 UI。...Jetpack Compose Components (Part 2)[4] 下一段代码是定义一个具有点击功能按钮,并将整个应用窗口设置为 Material 主题。...像 Gurupreet Singh[5] 这样开发者非常积极地参与 Compose 发布,并创造了宝贵资源( ComposeCookBook[6])来帮助其他开发者。...Driven UI”[9]•“Jetpack Compose: How to Build a Messaging App”[10] 以上就是本文全部内容了,希望本文能对你有所帮助,感谢你阅读。

5.1K30

Jetpack Compose Beta 版现已发布!

时机正好,不妨趁现在开始学习 Compose,并着手规划今年 1.0 版发布之后,您将如何在接下来项目或功能中使用该工具包。...我们期待看到您使用 Compose 构建内容, 并根据您反馈和功能请求来优化我们 API,并确定我们工作方向优先级。...开始学习 Compose 为了帮助您和团队学习关于 Jetpack Compose 所有内容,我们更新了 学习计划,同时提供了一系列精心规划视频、Codelab 和重要文档,帮助您入门。...我们会提供各种指南来帮助您快速入门, 架构、无障碍功能 和 测试 相关指导内容,以及针对 动画、列表 或 Compose 编程思想 深入探讨。...现在时机正好,不妨开始学习 Jetpack Compose,并规划如何在接下来项目中使用该工具包。

5.6K10

【Android笔记】Jetpack Compose

注意,Jetpack Compose控件被定义成一个一个可组合函数,官方称这些控件为Composable,翻译成中文是“可组合项”,当强调它作为一个界面的一部分出现时,我会使用“控件”或“元素”之类术语...第一步,我们需要测量这个子控件,获得一个Placeable对象,我们可以通过这个Placeable对象,相对于控件位置来摆放这个子控件。...现在这个子控件已经根据给定限制被测量好,下一步,我们就需要计算它离顶部高度,这里应该使用用户传入高度减去FirstBaseline位置,得到就是这个控件应该离顶部高度。...Compose面向组合实现UI树相较于传统View模式灵活性。...,并上报给控件控件,最后按照自己内部安排好顺序对子元素进行摆放。

77220

【建议收藏】Jetpack Compose编程知识全汇总 (含详细实例讲解)

以下三种方式可初步体验: 尝试使用Jetpack Compose 示例应用 创建支持Jetpack Compose 新应用 现有项目中支持Jetpack Compose 基于现状,我主要介绍第三种方式...`widthDp: Int`: 在Compose中渲染最大宽度,单位为dp。 8. `heightDp: Int`: 在Compose中渲染最大高度,单位为dp。...如果想使用Compose情况下,又不想迁移整个应用,可以在xml里面增加ComposeView,类似于占位符,然后在Actviity/fragment中寻找该控件并调用setContent方法即可...Jetpack Compose应用1 开始前准备 创建DEMO 遇到问题 [1240] 2. Jetpack Compose应用2 3....用Compose Android 写一个天气应用 开篇 画页面 画背景 画内容 …… [1240] 6.

6.2K60

JetPack Compose主题配色太少怎么办,来设计自己颜色系统吧

引言 JetPack Compose 正式版已经发布好几个月了,在这段时间里,除了业务相关需求之外,我也开始了 Compose 在实际项目中落地实验,因为一旦要接入当前项目,那么遇到问题其实远远大于新创建一个项目所需要问题...CkColors 这个类上增加了 @Stable ,其代表着对于 Compose 而言,这个类是一个稳定类,即每次更改不会引发重组,内部颜色字段使用了 mustbaleStateOf 包装,以便当颜色更改时触发重组...当然可以用,但是实际中问题会很多,比如说主题更改会导致而且不符合 Compose 设计,而且如果我们可能有一部分业务在一定情况下,它可能一直保持一个主题色,那么此时怎么解决?...大家如果觉得晦涩,不妨先看一下 Android开发者-深入详解Jetpack Compose实现原理,再来理解下面的某些术语,可能会更简单点,因本篇不是通俗compose 实现原理,所以大家参阅上面的链接即可...| 实现原理 Android开发者 - 深入详解 Jetpack Compose | 优化 UI 构建

1.5K20

Android Jetpack Compose开发体验

也不是,在目前来说,Compose UI一些组件Pager还是有些不成熟,另外性能方面也有些不足,这也就呼应了本篇开头jetpack compose官网那句话 “使用JetPack Compose...事件追踪 在compose UI中,everything is Node,Layout Node、input Node和modifier Node,这就造成了一个问题,在特殊情况下,很难追踪事件被哪个...实践 本篇说了很多总结性内容,下面本篇会通过四个案例,来体验一下Compose魅力。...动画偏移效果 下面是一个简单位置偏移动画,也是来自JetPack Compose官方教程中 在这个动画中,还有一点需要注意是,偏移方式是通过Offset方式,类似Android中View修改Left...其实这是Modifier中默认伴生对象,因此,这里返回this原因是因为使用伴生对象没有意义。

8210
领券