width
,heigh
,size
设置Content的宽度和高度。
Modifier.width(2.dp) // 设置宽度
Modifier.height(3.dp) // 设置高度
Modifier.size(4.dp, 5.dp) // 设置高度和宽度 复制代码
widthIn
,heightIn
,sizeIn
设置Content的宽度和高度的最大值和最小值。
Modifier.widthIn(2.dp) // 设置最大宽度
Modifier.heightIn(3.dp) // 设置最大高度
Modifier.sizeIn(4.dp, 5.dp, 6.dp, 7.dp) // 设置最大最小的宽度和高度
gravity
在Column
中元素的位置。
Modifier.gravity(Alignment.CenterHorizontally) // 横向居中
Modifier.gravity(Alignment.Start) // 横向居左
Modifier.gravity(Alignment.End) // 横向居右
rtl
,ltr
开始布局UI的方向。
Modifier.rtl // 从右到左
Modifier.ltr // 从左到右 复制代码`
Modifier的方法都返回Modifier的实例的链式调用,所以只要连续调用想要使用的方法即可。
`@Composable fun Greeting(name: String) { Text(text = "Hello $name!", modifier = Modifier.padding(20.dp).fillMaxSize()) } #### []( )2.2.5 Column,Row 正如其名字一样,`Column`和`Row`可以理解为在`View/Layout`体系中的纵向和横向的`ViewGroup`。 需要传入的参数一共有四个。 * `Modifier` 用上述的方法传入已经按需求设置好的Modifier即可。 * `Arrangement.Horizontal`, `Arrangement.Vertical` 需要给`Row`传入`Arrangement.Horizontal`,为`Column`传入`Arrangement.Vertical`。 这些值决定如何布置内部UI组件。 可传入的值为`Center`, `Start`, `End`, `SpaceEvenly`, `SpaceBetween`, `SpaceAround`。 重点解释一下`SpaceEvenly`, `SpaceBetween`, `SpaceAround`。 `SpaceEvenly`:各个元素间的空隙为等比例。 ![](https://img-blog.csdnimg.cn/img_convert/f9b81903d40b76063e4cb64ea2547e5c.png) `SpaceBetween`:第一元素前和最后一个元素之后没有空隙,所有空隙都按等比例放入各个元素之间。 ![](https://img-blog.csdnimg.cn/img_convert/168b4b64aab0b51484b367356960edac.png) `SpaceAround`:把整体中一半的空隙平分的放入第一元素前和最后一个元素之后,剩余的一半等比例的放入各个元素之间。 ![](https://img-blog.csdnimg.cn/img_convert/a5467bb177105c94edb4b00e8e709c67.png) * `Alignment.Vertical`, `Alignment.Horizontal` 需要给`Row`传入`Alignment.Vertical`,为`Column`传入`Alignment.Horizontal`。 使用方法和`Modifier`的`gravity`中传入参数的用法是一样的,这里就略过了。 * `@Composable ColumnScope.() -> Unit` 需要传入标有`@Compose`的UI方法。但是这里我们会有lamda函数的写法来实现。 整体代码如下。 Column { Row(modifier = Modifier.ltr.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceAround, verticalGravity = Alignment.Top) { // ..,... } ![](https://img-blog.csdnimg.cn/img_convert/375abb3acd3b67b27891240f51ef516c.png) []( )3\. 其他 ---------------------------------------------------------------------- 客观地讲,Compose 确实是一套比较难学的东西,因为它毕竟太新也太大了,它是一个完整的、全新的框架,确实让很多人感觉「学不动」,这也是个事实。 []( )那怎么办呢?学不动怎么办呢? ------------------------------------------------------------------------------ 如果你是因为缺少学习资料,而我正好薅到这本谷歌内部大佬根据实战编写的《**Jetpack Compose最全上手指南**》,从入门到精通,教程通俗易懂,实例丰富,既有基础知识,也有进阶技能,能够帮助读者快速入门,是你学习Jetpack Compose的葵花宝典,快收藏起来!!! []( )那怎么办呢?学不动怎么办呢? ------------------------------------------------------------------------------ 如果你是因为缺少学习资料,而我正好薅到这本谷歌内部大佬根据实战编写的《**Jetpack Compose最全上手指南**》,从入门到精通,教程通俗易懂,实例丰富,既有基础知识,也有进阶技能,能够帮助读者快速入门,是你学习Jetpack Compose的葵花宝典,快收藏起来!!! ### []( )第一章 初识 Jetpack Compose **1\. 为什么我们需要一个新的UI 工具?** **2\. Jetpack Compose的着重点** * 加速开发 * 强大的UI工具 * 直观的Kotlin API ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174035893.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) **3\. API 设计** ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174046755.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) **4\. Compose API 的原则** * 一切都是函数 * 顶层函数(Top-level function) * 组合优于继承 * 信任单一来源 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174058840.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) **5\. 深入了解Compose** * Core * Foundation * Material ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174107488.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) **6\. 插槽API** ### []( )第二章 Jetpack Compose构建Android UI **1\. Android Jetpack Compose 最全上手指南** * Jetpack Compose 环境准备和Hello World * 布局 * 使用Material design 设计 * Compose 布局实时预览 * …… ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174116157.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) **2\. 深入详解 Jetpack Compose | 优化 UI 构建** * Compose 所解决的问题 * Composable 函数剖析 * 声明式 UI * 组合 vs 继承 * 封装 * 重组 * …… ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174124492.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) **3\. 深入详解 Jetpack Compose | 实现原理** * @Composable 注解意味着什么? * 执行模式 * Positional Memoization (位置记忆化) * 存储参数 * 重组 * …… ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174131758.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) ### []( )第三章 Jetpack Compose 项目实战演练(附Demo) **1\. Jetpack Compose应用1** * 开始前的准备 * 创建DEMO * 遇到的问题 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174142665.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) **2\. Jetpack Compose应用2** **3\. Jetpack Compose应用做一个倒计时器** * 数据结构 * 倒计时功能 * 状态模式 * Compose 布局 * 绘制时钟 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174155252.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) **4\. 用Jetpack Compose写一个玩安卓App** * 准备工作 * 引入依赖 * 新建 Activity * 创建 Compose * PlayTheme * 画页面 * 底部导航栏 * 管理状态 * 添加页面 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210526174202901.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70) **5\. 用Compose Android 写一个天气应用** * 开篇 * 画页面 * 画背景 * 画内容 * …… **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。** **深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!** **因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。** ![img](https://img-blog.csdnimg.cn/img_convert/936281847b071eafc108e93b2a688774.png) ![img](https://img-blog.csdnimg.cn/img_convert/e7ecc507a575a5a672efba6483b5b9ab.png) ![img](https://img-blog.csdnimg.cn/img_convert/c46de1d2e8bd8373b5fa5afd5ee54763.png) ![img](https://img-blog.csdnimg.cn/img_convert/c100209c790924253d6b42fdc644addf.png) ![img](https://img-blog.csdnimg.cn/img_convert/06603c9d1b54d3e1ef78de9a242bf5fe.png) ![img](https://img-blog.csdnimg.cn/img_convert/2325a80927e97954e0e436780b4e7f1e.png) ![img](https://img-blog.csdnimg.cn/13f2cb2e05a14868a3f0fd6ac81d625c.png) **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!** **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** **如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)** ![img](https://img-blog.csdnimg.cn/img_convert/ef6edd068df3ffcb90996459883c6ab2.png) **最后附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题** (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总) ![](https://img-blog.csdnimg.cn/img_convert/ff61f997cd25246ec654eb8b655af5f6.webp?x-oss-process=image/format,png) 面试成功其实是必然的,因为我做足了充分的准备工作,包括刷题啊,看一些Android核心的知识点,看一些面试的博客吸取大家面试的一些经验,**下面这份PDF是我翻阅了差不多1个月左右一些Android大博主的博客从他们那里取其精华去其糟泊所整理出来的一些Android的核心知识点,** 全部都是精华中的精华,我能面试到现在资深开发人员跟我整理的这本Android核心知识点有密不可分的关系,在这里本着共赢的心态分享给各位朋友。 ![](https://img-blog.csdnimg.cn/img_convert/28b821fae1ddd1a85d3a8ccead5d997a.webp?x-oss-process=image/format,png) 这份PDF囊括了JVM,Java集合,Java多线程并发,Java基础,生命周期,微服务, 进程,Parcelable 接口,IPC,屏幕适配,线程异步,ART,架构,Jetpack,NDK开发,计算机网络基础,类加载器,Android 开源库源码分析,设计模式汇总,Gradle 知识点汇总... 由于篇幅有限,就不做过多的介绍,大家请自行脑补 **一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!** ![img](https://img-blog.csdnimg.cn/img_convert/eee16756c530efc678cdc90d556a44c4.png) 都是精华中的精华,我能面试到现在资深开发人员跟我整理的这本Android核心知识点有密不可分的关系,在这里本着共赢的心态分享给各位朋友。 [外链图片转存中...(img-nD1adoIW-1712689742595)] 这份PDF囊括了JVM,Java集合,Java多线程并发,Java基础,生命周期,微服务, 进程,Parcelable 接口,IPC,屏幕适配,线程异步,ART,架构,Jetpack,NDK开发,计算机网络基础,类加载器,Android 开源库源码分析,设计模式汇总,Gradle 知识点汇总... 由于篇幅有限,就不做过多的介绍,大家请自行脑补 **一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!** [外链图片转存中...(img-PTHHnYHr-1712689742595)]