前言 Jetpack Compose中想更新界面上的任何东西都需要重组,重组本质就是再执行一次当前函数。...触发重组方式有 State值改变 调用方法刷新 State 创建State有以下几种方式 注意 只有在Kotlin中才能生效,在Java中是不行的。...//不会更新 list[index].name = "new value" //会更新 list[index] = list[index].copy(name = "new value") List的中括号
前言 Jetpack Compose光下拉刷新,官方就提供了三种不同的方式,使用的依赖也不相同,特别的混乱。 所以在网络上看到的示例可能找不到依赖就是这个原因。...androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp...Text(text = index.toString()) } } } } PullToRefreshContainer 把libs.version.toml中的...", name = "material3-android", version.ref = "material3Android" } build.gradle.kts中 implementation(libs.androidx.material3...https://developer.android.google.cn/jetpack/androidx/releases/compose-material3?
前言 在 Compose 中,Modifier 的调用顺序是有影响的。...修饰符列表 https://android-dot-google-developers.gonglchuangl.net/jetpack/compose/modifiers-list?...hl=zh-cn 背景 Modifier.background(Color.Green)) 内外边距和背景 在 Compose 中,背景色使用 Modifier.background() 进行设置。...在 Compose 中,Margin 和 Padding 都用 Modifier.padding() 来设置。...通常情况下,父容器需要使用相应的布局修饰符,如 Box 中的 BoxScope、Column 中的 ColumnScope 或 Row 中的 RowScope。
前言 Jetpack Compose 中的列表组件相对于之前的View方式要简单很多。...modifier = Modifier.padding(16.dp).height(30.dp), ) { Text(text) } } 注意 竖向Grid布局中的子项...,也就是上面的GridItem中的根组件的宽度是自动使用父的,设置宽度不会生效。...modifier = Modifier.padding(16.dp).height(30.dp), ) { Text(text) } } 注意 竖向Grid布局中的子项...,也就是上面的GridItem中的根组件的高度是自动使用父的,设置高度不会生效。
https://developer.android.google.cn/jetpack/compose/designsystems/material3?...Compose 中的一个重要概念,用于向整个组合树(Compose tree)提供特定类型的值。...在 Compose 中,组合树是由各种组合函数(如 @Composable 标记的函数)构成的层级结构,用于描述应用程序的 UI 层次结构。...这使得在整个应用程序中共享某些数据变得非常方便,尤其是对于主题、本地化设置、用户身份验证状态等方面的信息。...总的来说,CompositionLocalProvider 用于在组合树中传递局部值,使得这些值对于整个组合树中的任何组件都可用,而不需要显式传递。
github.com/coil-kt/coil Coil官方文档:https://coil-kt.github.io/coil 基本图片 添加依赖 implementation("io.coil-kt:coil-compose...modifier = Modifier.clip(CircleShape).size(60.dp) ) } 加载GIF 添加引用 implementation("io.coil-kt:coil-compose...builder = { crossfade(true)//淡出效果 }), contentDescription = null ) 自带的加载中
这些可组合项的功能与视图系统中的 ViewPager类似。...官方文档: https://android-dot-google-developers.gonglchuangl.net/jetpack/compose/layouts/pager?...import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.pager.HorizontalPager...import androidx.compose.foundation.pager.PagerState import androidx.compose.runtime.Composable import...androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Alignment
前言 Jetpack Compose中的页面跳转和传值和之前没什么不同。 要注意的是 组件内尽量不要进行页面的跳转,组件可以设置回调方法,在Activity中进行页面跳转操作。...在 Android 中,可以通过 Intent 来传递自定义对象,前提是该对象必须实现 Serializable接口。
,不要错过 :-)Jetpack Compose 中的状态State是什么在 Jetpack 中,state表示一个和 UI 状态相关的值。...这是 Jetpack Compose 中很常见的修改状态的模式。...附加内容:在 Jetpack Compose 中,如何使用 Kotlin 的 Flow、RxJava 或者 LiveData 表示状态?...Jetpack Compose 允许我们使用 LiveData、RxJava 的观察者、Kotlin 的 Flow 来表示 Jetpack Compose 中的状态。...这些拓展方法会帮我们把响应式的实例转换成 Jetpack Compose 中的状态实例。如何在 Jetpack Compose 中使用 Kotlin 的 Flow?
前言 除了布局组件外,Jetpack Compose 还提供了一系列其他常用的 UI 组件。...https://developer.android.google.cn/jetpack/compose/components?...contentScale = ContentScale.Crop, modifier = Modifier.clip(CircleShape).size(60.dp) ) } 加载中动画...RoundedCornerShape(16.dp), color = MaterialTheme.colorScheme.background ) { Text("文字") } } 隐藏键盘...val keyboardController = LocalSoftwareKeyboardController.current // 在需要隐藏键盘的地方调用这个函数 fun hideKeyboard
前言 ViewModel 和 remember 是 Jetpack Compose 中用于管理数据的两种不同机制。...这对于需要跨配置更改(例如旋转屏幕)或者应用程序生命周期的状态非常有用。它会将状态保存在Bundle中,以确保状态的持久化。...选择使用哪种取决于您需要的状态是否需要在应用程序重新启动后保持不变。...mutableStateOf/mutableStateListOf mutableStateOf 是 Jetpack Compose 中的一个函数,用于创建可变的状态。...总的来说: mutableStateOf 的作用是在 Jetpack Compose 中创建可变的状态,以便动态更新 UI,并确保 UI 反映最新的状态值。
Jetpack Compose 1.0 正式版已经发布快一年的时间了,我们看到社区正以极大的热情采纳和使用 Compose: Kotlin 语法的简洁性以及使开发界面变得更快速、更简单的声明式开发方式得到了广大开发者们的赞赏...与此同时,Twitter 也已经在应用的不同部分使用了 Jetpack Compose 并从中受益,因为 "Compose 让我们更容易定义自己的组件,并使它们的 API 更明确、灵活和直观。"...Airbnb 团队同样也采用了 Compose: "Jetpack Compose 是我们技术战略的重要组成部分,生产力因此获得了大幅提高。"...在 I/O 演讲 Jetpack Compose 中常见的性能问题 中,Compose 团队介绍了常见的性能错误以及这些错误的解决方法。...Codelab 全新的 Compose 性能说明文档 更新的 自定义输入文档 I/O 演讲视频: Jetpack Compose 中常见的性能问题 以及 Compose 中的惰性布局 对于新手开发者,
onLongClick = { // 长按 } ) ) Modifier.pointerInput pointerInput 是 Compose...中处理所有手势事件的入口,类似传统视图的 onTouch 。...import android.annotation.SuppressLint import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource...import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.composed
前言 Jetpack Compose 提供了一系列用于构建用户界面的布局组件,这些组件可以帮助您创建各种复杂的布局结构。...对应关系 View Jetpack Compose FrameLayout Box& Modifier RelativeLayout Box & Modifier LinearLayout Row, Column...ConstraintLayout ConstraintLayout 移植到了 Compose 中 RecyclerView LazyColumn or LazyRow ScrollView Modifier.verticalScroll
Jetpack Compose for Desktop 使用过程中遇到的几个大坑 最近在用 Jetpack Compose for Desktop 写一些好玩的,用的时候遇到了很多大坑,在这里总结如下:...@See https://github.com/JetBrains/compose-jb/issues/2011 错误的使用二进制流方式从 ClassLoader Resources 中加载字体导致界面整体卡顿...FontStyle.Normal ): Font = LoadedFont(identity, data, weight, style) 然而当你试图从 ClassLoader Resources 中传入字体的二进制流时...改用其他类型图片,如 PNG @see https://github.com/JetBrains/compose-jb/issues/1217 SVG 图片宽高比被错误计算导致 SVG 图片缩放不符合预期
重大更新: Jetpack Compose Alpha Jetpack Compose 的 第一个 alpha 版本 已经发布,这是 Android 的现代化 UI 工具包,可以访问原生平台 API。...您也可以观看视频,通过开源示例应用中的具体示例,了解 Jetpack Compose 如何简化 Android 界面。...最后,您可以在 视频 "Compose for Existing" 应用 中,了解 Jetpack Compose 和基于视图的 UI 如何共存和交互,使您轻松按照自己的节奏采用 Compose。...键盘 (IME) 动画 Android 11 的新功能之一是应用能够在屏幕键盘打开和关闭之间无缝过渡,以及改进的 WindowInsets API,实现对键盘 (IME) 等控件的控制。...采用 MDC 可以使您的代码库为以后尝试 Jetpack Compose 做好准备,他们使用了相同的概念、设计词汇以及组件。
不久前,谷歌正式推出Jetpack Compose 1.0 版本。...基于 Jetpack Compose 1.0 由谷歌打造的 Jetpack Compose 是一款用于在 Android 应用程序之内构建用户界面的官方框架,上周刚刚发布 1.0 版本。...尽管才刚迎来 1.0,但谷歌表示“目前 Play Store 中已经有超过 2000 款应用程序在使用 Compose——更重要的是,就连 Play Store 这款应用本身也在使用 Compose。”...Compose 是一套声明式框架,其最大特色在于摆脱了传统 Android 方法中的层级结构,或者说布局与控制树。...Compose 则完全是另一码事,当然我们也在设计中考虑到了互操作性需求……Swing 这套框架太陈旧了,最早出现在上世纪九十年代末。
今天,我们将进入一个崭新的阶段,因为 JetBrains 宣布了 IntelliJ 的早期访问版本,允许你使用 Jetpack Compose 来构建 Windows 应用程序。...在 Compose for desktop 的早期版本中,他们为 IntelliJ 增加了一个桌面项目引导,可以让我们在几秒内配置好项目。...安装完 IDE 后,启动应用程序。你会看到如下的界面: ? 然后点击顶部栏的 "New Project "按钮,这一操作将会跳转至选择应用程序类型的界面。如下所示: ?...大部分的代码与 Android 里面的 Jetpack Compose UI 相似。 Main.kt 是包含与输出有关的代码 Kotlin 文件。它有一个主函数作为应用程序运行的入口。...他还从 Compose Android 应用中创建了 the Spotify desktop clone[7],这给了我很大的启发。
编译|核子可乐、燕珊 不久前,谷歌正式推出 Jetpack Compose 1.0 版本。...基于 Jetpack Compose 1.0 由谷歌打造的 Jetpack Compose 是一款用于在 Android 应用程序之内构建用户界面的官方框架,上周刚刚发布 1.0 版本。...尽管才刚迎来 1.0,但谷歌表示“目前 Play Store 中已经有超过 2000 款应用程序在使用 Compose——更重要的是,就连 Play Store 这款应用本身也在使用 Compose。”...虽然 Jetpack Compose 专为 Android 打造(与谷歌的 Flutter 框架不同),但 JetBrains 公司坚信 Compose 完全能够获得跨平台能力。...Compose 则完全是另一码事,当然我们也在设计中考虑到了互操作性需求……Swing 这套框架太陈旧了,最早出现在上世纪九十年代末。
在深入详解 Jetpack Compose | 优化 UI 构建 中谷歌介绍了为什么要设计 Jetpack Compose 来完成原生 Android 的开发,如今 Jetpack Compose for...从本质上讲 Compose for Desktop 允许开发者通过组合函数在代码中声明桌面 UI,并且它会自动响应应用的状态同步。...Swing 和 AWT集成在一起,这样开发者的 Compose for Desktop 应用程序就可以解锁这些 Java 的图形API,该集成还允许开发者逐渐将使用这些框架的应用程序迁移到 Compose...API 尚未涵盖的任何例子,请在项目的 issue 中告知:https://github.com/JetBrains/compose-jb/issues 。...在 #compose-desktop 中,就可以找到有关 Compose for Desktop 的讨论,在#compose 中,也可以讨论涉及 Android 上的 Compose 和 Jetpack
领取专属 10元无门槛券
手把手带您无忧上云