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

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

今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose一个声明式的UI...创建一个支持Jetpack Compose的新应用 比起现有应用接入Jetpack Compose ,创建一个支持Jetpack Compose 的新项目则简单了许多,因为Android Studio...注意,语言下来菜单,Kotlin 是唯一一个可选项,因为Jetpack Compose 只能用Kotlin来写的才能运行。 c....定义一个composable函数 一个composable函数只能在另一个composable函数的作用域里被调用,要使一个函数变为composable函数,只需函数名前加上@composable注解...六、Compose 布局实时预览 Android Studio 4.0 开始,提供了IDE预览composable函数的功能,不用像以前那样,要先下载一个模拟器,然后将app状态模拟器上,运行app

6.1K20

推荐开发者使用 Material Design 组件

为了保证您的应用与用户设备安装的其他应用在视觉和行为上保持一致,我们 推荐 您遵循 Material Design 规范,因为用户从一个应用中学习的操作模式可以无缝衔接地另一个应用中使用。...Nick Rout 以下文章中分别深入地介绍了这三个子系统: 打造 Material 颜色主题 | 实现篇 打造 Material 字体样式主题|实现篇 打造 Material 形状主题 | 实现篇...Hunter Stich 在下面这篇文章中介绍了 Material Motion 库: 使用 Material Design 组件实现 Material 动效 使用 Compose Jetpack Compose...尽早使用 MDC 将为未来迁移至 Jetpack Compose 做好准备 — 它们使用了相同的概念、设计名词和组件。...我们 近期更新 了 Android Studio 通过 File > New Project 菜单新建的模版,这些模版为您预设置了 Material 主题并使用了 MDC,因此您可以更容易的开始使用

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

聚焦 Android 11: UI 与 Compose

作者 / Chris Banes 和 Nick Butcher 往期 #11WeeksOfAndroid 系列文章我们介绍了联系人和身份、隐私和安全、 Android 11 兼容性 、开发语言、...重大更新: Jetpack Compose Alpha Jetpack Compose 的 第一个 alpha 版本 已经发布,这是 Android 的现代化 UI 工具包,可以访问原生平台 API。...为了帮助您快速掌握 Compose,我们发布了 4 个新的 Codelab、7 个新的示例 以及相关 新增文档,Compose 团队还发布了一个 播客,以及更多视频介绍供您参考。...您也可以观看视频,通过开源示例应用的具体示例,了解 Jetpack Compose 如何简化 Android 界面。...最后,您可以 视频 "Compose for Existing" 应用 ,了解 Jetpack Compose 和基于视图的 UI 如何共存和交互,使您轻松按照自己的节奏采用 Compose

1.7K30

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

Modifier.horizontalScroll(rememberScrollState())) { } Modifier.horizontalScroll() 水平滚动 Modifier.verticalScroll() 垂直滚动 注意:compose...似乎不支持一个水平滚动嵌套垂直滚动(或垂直滚动嵌套水平滚动),所以相应布局需要合理设计 此外,提及下,如果想使用像ListView或RecyclerView那样的列表组件,Compose可以使用LazyRow...= null, elevation: Dp = 1.dp, content: @Composable () -> Unit ) shape 形状,使用详见Jetpack Compose学习...按钮(Button) 输入框(TextField) 的使用 | Stars-One的杂货小窝 backgroundColor 背景色 contentColor 内容的背景色 border 边框,使用详见Jetpack...Compose学习(3)——图标(Icon) 按钮(Button) 输入框(TextField) 的使用 | Stars-One的杂货小窝 elevation 阴影高度 复制Card(modifier

1.8K30

Android Jetpack 学习笔记(1) - 概述

compose * 使用描述界面形状和数据依赖项的可组合函数,以编程方式定义界面。 databinding * 使用声明性格式将布局的界面组件绑定到应用的数据源。...fragment * 将您的应用细分为一个 Activity 托管的多个独立屏幕。...navigation * 构建和组织应用内界面,处理深层链接以及屏幕之间导航。 paging * 页面中加载数据,并在 RecyclerView 呈现。...新功能与特性更新 Hilt — Jetpack 推荐的依赖注入库 Hilt 是一个新的 Android 库,它简化了应用程序的依赖注入(DI)。...Jetpack Compose — Android 的新 UI 工具包 Jetpack Compose是 Android 的全新现代 UI 工具包,此版本添加了许多新功能:视图互操作性、更多 Material

1.3K20

Jetpack-Compose 学习笔记(六)—— Compose 主题 Theme 一探究竟,换肤还能如此 Easy?

的色值来设置,那么需要注意的是,Compose 默认的可组合项中常见的情况是浅色模式中将容器设为 primary色值,暗夜模式中将其设为 surface色值,许多组件默认都是使用这种模式,例如TopAppBar...切换主题 上面说了这么多,其实都是针对单个主题说的,实际应用,我们可以做个切换主题的小功能,如下图所示: 其中包含了色值、字体、形状的切换,用到的思路和原理都是一样的,所以这里就只拿主题色值的切换来说明...其实, Compose ,我们可以将当前主题用一个 MutableState对象来保存,然后将主题中的色值集合与这个状态相关联,当用户切换主题改变了这个 MutableState值之后,与之关联的色值集合就会收到回调进行切换...返回值是一个 State状态对象,所以它可以不断地去更新值,直至动画完成。 需要注意的是,只要动画所作用的可组合项没有 Compose 组件树上被移除,那么这个动画方法不会被取消或被停止。...Android Jetpack Compose 实现主题切换(换肤);九狼 https://juejin.cn/post/7057418707357663246 Jetpack Compose -

1.5K20

欢迎体验 | Wear OS 版 Compose 开发者预览版

作者 / 开发者关系工程师 Jeremy Walker 今年的 Google I/O 大会 上,我们宣布将 Jetpack Compose 的优秀特性引入 Wear OS。...除此之外,您在使用 Jetpack Compose 构建移动应用的经验,也可以直接运用在 Wear OS 版本上。...就像在移动设备上一样,欢迎您立即着手测试,我们也希望发布 Beta 版前,将您的 反馈 纳入库的早期迭代。 本文将回顾我们构建的几个主要可组合项,并介绍帮助您开始使用的多种资源。 现在就开始吧!...尽管从技术上说,可以 Wear OS 上使用移动依赖项,但我们还是建议您使用专用于 Wear 的版本以获取最佳体验。 注意: 我们将在未来版本添加更多 Wear 可组合项。...样式 颜色、排版及使用 MaterialTheme 的形状的代码亦如此。

1.6K10

Android | Compose 初上手

Compose 构建界面的时候,无需像之前那么构建 XML 布局,只需要调用 Jetpack Compose 函数来声明你想要的的元素,Compose 编译器就会自动帮你完成后面的工作。...group: String: 为该Preview设置group名字,可以UI以group为单位显示。 fontScale: Float: 可以预览对字体放大,范围是0.01。...widthDp: Int: Compose渲染的最大宽度,单位为dp。 heightDp: Int: Compose渲染的最大高度,单位为dp。...Compose 编程思想 Jetpack COmpose一个适用于 android 的新式声明性界面工具包。...组合函数 Jetpack Compose 是围绕可组合函数构建的,这些函数就是要显示界面上的元素,函数只需要描述应用界面形状和数据依赖关系,而不用去关系界面的构建过程, 如果需要创建组合函数,只需要将

5.2K20

FAQ | 为大屏幕设备构建应用的常见问题解答

设计角度来讲,可折叠设备将应用常规手机屏幕转换到更大尺寸的屏幕,这为设计师带来了更多发挥的机会,这确实是一个引入不同功能、展示各种元素的好机会,这并非意味着要用更多内容来塞满更大的屏幕空间,屏幕更大通常意味着为用户提供更身临其境的体验...这是一个很好的方法,无需重写所有布局代码和整个应用即可优化应用界面。 如果您正在考虑重写部分界面或整个应用,那么 Jetpack Compose 也是很好的选择之一。...所以强烈建议您优先选择使用 Jetpack Compose。...提及折叠形态,需要注意组件的过渡,将会在更大设备更大屏上使用各种组件,尤其是桌面模式,需要特别注意界面,例如,该模式下,关键操作或大多数操作是底部屏幕完成的,而大多数内容组件实际上会放在另一个屏幕上...技术实现来说,要手动实现这些转换效果并在不同的设备形态下有着顺畅的交互并非易事,您可以借助我们为 Android 打造的界面工具包 Jetpack Compose 来进行构建。

3.5K10

Jetpack Compose的布局组件、状态栏高度padding

前言 Jetpack Compose 提供了一系列用于构建用户界面的布局组件,这些组件可以帮助您创建各种复杂的布局结构。...对应关系 View Jetpack Compose FrameLayout Box& Modifier RelativeLayout Box & Modifier LinearLayout Row, Column...ConstraintLayout ConstraintLayout 移植到了 Compose RecyclerView LazyColumn or LazyRow ScrollView Modifier.verticalScroll...() or Modifier.horizontalScroll() 层叠布局 Box: Box 是一个简单的布局组件,用于单个平面上叠加子元素。...功能和用途: Surface 是一个基本的容器,用于屏幕上绘制内容。它提供了绘制颜色、形状、边框等的基本功能。 通常用于创建自定义的UI元素,例如背景、容器等。

15610

聚焦 Android 11: 大功告成

一览各个 获奖应用 的风采,看看它们运用 ML Kit 和 TensorFlow Lite,专注于展示如何通过强大的机器学习来帮助用户解决问题: 比如 为视障人士拥挤空间导航 的应用,或者另一个 帮助学生学习手语...另一个备受期待的新增功能是支持进行 图像标记 和 对象检测与跟踪 时,将 Google 模型替换为您自己的模型。...您可以 Read Reading 团队的访谈 获得更多灵感。 另一个重点是 如何大幅简化为 Android 应用添加自定义模型的过程。...以及如何使用利用 MediaRouter Jetpack 库 和 UAMP 示例 的更新版本。 最后,我们介绍了一些 使应用 5G 获益 的主要途径。...UI 与 Compose 为了帮助您快速掌握 Compose,我们发布了 4 个新的 Codelab、9 个新的示例 以及相关 新增文档,Compose 团队还发布了一个播客,以及更多视频介绍供您参考。

2K30

Button 的 进化之旅 | 我们是如何设计 Compose API 的

近期 Jetpack Compose 发布了 1.0 版本,带来了一系列用于构建 UI 的稳定 API。...今年早些时候,我们发布了 API 指南,介绍了编写 Jetpack Compose API 的最佳实践和 API 设计模式。... Compose ,每个组件都是一个函数,所以常规的解决方法是定义一个函数,其中调用 Button,并且为 Button 提供正确的文本: @Composable fun LoginButton(...OutlinedButton 提高 API 的可发现性或可见性 我们还在研究中发现,如何设置按钮形状方面存在一个重大缺陷。...当开发者需要新建一个带有切角的按钮时,通常可通过如下方式实现: 使用默认值创建一个简单的 Button MaterialTheme.kt 源文件参考关于形状的主题设置相关的内容 再回看 MaterialButtonShapeTheme

67500

一起看 IO | Compose for Wear OS Beta 版发布!

Beta 版本介绍 自去年的 I/O 大会以来,我们一直努力将 Jetpack Compose 的优势带到 Wear OS,还通过 Slack 与社区互动,收集开发者对 API、组件和工具的反馈。...默认情况下,这个包含可选择项目的列表会在两个方向上 "无限" 重复,侧面看上去像是一个旋转的滚筒。...对话框支持滑动关闭,继而显示背景的父级内容。 为了与 Scaffold 保持一致,全屏对话框会显示一个 PositionIndicator 和一个 Vignette。...进度指示器允许圆形轨道留出空隙,为其他内容留出空间,例如在全屏时使用 TimeText。...即刻开始使用 许多移动端 Compose 的开发原则同样适用于 Wear OS 版本的 Compose,如果您不熟悉这套用户界面工具包,可以 Jetpack Compose 的基础知识开始上手。

1.4K20

专业的图像处理工具:Pixelmator Pro Mac下载

-根据图层类型(图像,文本,形状和组),颜色标记或两者过滤图层。-图层边栏快速调整图层不透明度和混合模式。-使用剪切蒙版将一个图层的内容剪切另一个“偶数图层组”或“嵌套图形”的轮廓!...-通过“图层”侧边栏的快捷菜单添加剪贴蒙版,通过两个图层之间按住Option键单击,或“格式”菜单添加剪贴蒙版。-双击图层侧边栏的箭头,释放剪贴蒙版。...-使用“颜色调整”,“效果”或“样式”的图层上使用绘画,修饰或整形工具时,所有非破坏性过滤器都将动态更新到图层的新内容并且不会被展平。这一个很大!颜色标签通过为图层提供方便的颜色标记来组织图层。...剪裁面具剪切蒙版可让您毫不费力地将一个图层的内容剪切另一个图层的形状,即偶数图层组和嵌套图形!快速不透明和混合您现在可以图层边栏更改图层的不透明度设置和混合模式。

76530

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

compose,每个可组合函数调用直至渲染完成,称之为重组 通过异步上树虽然带来了性能的提升,但是管理方面变得困难,所以compose规定,每个可组合函数都是独立运行的存在,可组合函数内部应该仅处理的...,实际开发google也推荐:UI设计MD2转变为MD3 2.BOM 对于compose的版本管理,官方推荐使用BOM,导入BOM后的好处是:导入compose其他库组,都将使用BOM定义的版本...xml,我们常常会使用资源id获取到资源文件,比如:color、drawable、string等,compose,通过以下函数获取,这些函数都位于androidx.compose.ui.res...value,一个是onValueChange ,结合之前的重组概念来理解,每次重组都会重新调用可组合函数,所以输入框内容value必须是一个全局对象,compose,可以使用remember函数来使得一个变量成为全局变量...,从而不受重组时代码调用导致重新初始化操作的影响 此外,只有state的改变才能通知compose进行重组,所以value又必须是一个state对象,并在onValueChange对state进行改变

5.7K30

Compose主题切换——让你的APP也能一键换肤

开端 应用换肤,这真的是一个老生常谈的问题,原生安卓开始、到后来的 Flutter ,再到现在的 Compose ,虽说老生常谈,但其实还是新瓶装旧酒。...Flutter 的主题切换主要依赖于 provider 状态管理,其实在 Compose 也差不多,且听完娓娓道来! GitHub 地址文章末尾。...Compose 的主题 当你创建一个新的 Compose 项目之后,系统会自动帮你创建下面的结构: 图片 可以看到系统一共创建了四个文件,顾名思义,分别为:颜色、形状、主题、类型,本文咱们主要看颜色及主题...最开始的时候我的想法还是不够 Compose ,我想的是使用广播,切换主题页面点击之后发送一个广播,然后 Activity 中进行接收,然后接收到之后刷新。...中午食堂吃饭的时候突然想到:Compose 全部都是以状态驱动 UI 改变的,我直接将主题切换设置成一个状态不得了!

70430

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

我们需要新的框架,不影响开发者的工作效率、用户体验或 Play 商店自身性能的同时,能够支撑数百名工程师同时开展工作。 我们为此制定了一个长期路线图,来更新商店内网络层一直到像素渲染的所有内容。...分析了各种选择后,我们做出了 (在当时) 一个大胆的决定——使用当时还处于 Alpha 预览阶段的 Jetpack Compose。...△ 实际操作的重组可视化修饰符 (Modifiers)蓝色 (无重组),绿色 (1 次重组) 为 Play 商店应用优化 Compose另一个关键是 为整个应用制定详细的端到端的迁移策略。...最初的集成实验,我们遇到了双栈问题: 单个用户会话同时运行 Compose 和视图类渲染非常占用内存,尤其是低端设备上。...将 Compose Android 框架中分离出来减少了我们团队直接为 Jetpack Compose 做出贡献的开销,从而缩短了改进工作的周转时间,使所有开发者受益。

3.2K40
领券