Android全新UI编程 - Jetpack Compose 超详细教程,30岁以后搞Android已经没有前途

  • 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) // 设置最大最小的宽度和高度

  • gravityColumn中元素的位置。

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)]
  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值