Android Jetpack Compose 超快速上手指南

Android全新UI编程 - Jetpack Compose 超详细教程 第1弹 各行各样都会淘汰一些能力差的,不仅仅是IT这个行业,所以,不要被程序猿是吃青春饭等等这类话题所吓倒,也不要觉得,找到一份工作,就享受安逸的生活,你在安逸的同时,别人正在奋力的向前跑,这样与别人的差距也就会越来越遥远,加油,希望,我们每一个人,成为更好的自己。BAT大厂面试题、独家面试工具包,资料包括 数据结构、Kotlin、计算机网络、Framework源码、数据结构与算法、小程序、NDK、Flutter,《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》 阅读详情

Compose 介绍

Jetpack Compose发布也快有一年的时间了,虽然目前仍是DEV阶段,但是距离可用已经不远了。Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速度(可以参考几乎一模一样的Flutter,开发速度确实很快)。

Jetpack Compose对于没有接触过声明式UI的小伙伴可能会学习曲线有点陡峭,对于已经能熟练开发Flutter应用的小伙白来说几乎没有难度。(Compose就是参考flutter的模式开发的,代码中还可以看到Flutter的相关注释)

这篇文章不回去解释过多的原理与技巧,只要是让你能够快速上手开发项目。

Compose 如何使用

因为目前(2020年09月27日)Compose仍处于开发阶段,所以需要使用最新 Canary 版的 Android Studio 预览版。

可以选择直接创建Empty Compose Activity来创建一个全新的Compose应用,或者可以选手动修改gradle的方式来创建Compose应用

修改Gradle

在模块的build.gradle文件中新增:

android {
    ...
    
    kotlinOptions {
        jvmTarget = '1.8'
        useIR = true
    }
    buildFeatures {
        compose true
    }
    composeOptions {
        kotlinCompilerExtensionVersion compose_version
        kotlinCompilerVersion '1.4.0'
    }
}


dependencies中新增:

implementation "androidx.compose.ui:ui:$compose_version"
    implementation "androidx.compose.material:material:$compose_version"
    implementation "androidx.ui:ui-tooling:$compose_version"

目前最新的Compose版本是1.0.0-alpha03 使用Compose最低的buildTools版本要求为29

使用
@Compose

所有关于构建View的方法都必须添加@Compose的注解才可以。并且@Compose跟协程的Suspend的使用方法比较类似,被@Compose的注解的方法只能在同样被@Comopse注解的方法中才能被调用

@Composable
fun Greeting(name: String) {
    Text (text = "Hello $name!")
}

@Preview

加上@Preview注解的方法可以在不运行App的情况下就可以确认布局的情况。 @Preview的注解中比较常用的参数如下:

  • name: String: 为该Preview命名,该名字会在布局预览中显示。
  • showBackground: Boolean: 是否显示背景,true为显示。
  • backgroundColor: Long: 设置背景的颜色。
  • showDecoration: Boolean: 是否显示Statusbar和Toolbar,true为显示。
  • group: String: 为该Preview设置group名字,可以在UI中以group为单位显示。
  • fontScale: Float: 可以在预览中对字体放大,范围是从0.01。- widthDp: Int: 在Compose中渲染的最大宽度,单位为dp。
  • heightDp: Int: 在Compose中渲染的最大高度,单位为dp。

更加详细具体的说明可以看 Google关于@Preview的文档

@Preview
@Composable
fun PreviewGreeting() {
    Greeting("Android")
}

上面的代码会在预览界面生成:

注意:强烈建议您不要向生产函数(即使其不带参数)添加 @Preview 注释,而是编写一个封装函数并在其中添加 @Preview 注释。

setContent

setContent和xml时候的setContentView是类似的 在setContent中写入关于UI的@Compopse方法,即可在Activity中显示。

···
  override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        setContent { 
            ComposeTheme {
                Greeting("Android")
            }
        }
    }
···

主题

Jetpack Compose 提供了 Material Design 的实现, Material Design 组件(按钮、卡片、开关等)在 Material Theming 的基础上构建而成.

Jetpack Compose 使用 MaterialTheme 可组合项实现这些概念:

MaterialTheme(
  colors = …,
  typography = …,
  shapes = …
) {
  // app content
}

关于主题,建议阅读Google的官方文档

布局、组件

Compose提供了常见的布局与丰富的组件。

布局常见的有Column、Row、Stack。还有Material 支持的 Scaffold看到这里熟悉Flutter的朋友应该已经看出来了,Compose提供的自建跟布局和Flutter是非常相似的。

Column:

@Composable
fun ArtistCard() {
  Column {
    Text("Alfred Sisley")
    Text("3 minutes ago")
  }
}

Scaffold:

@Composable
fun HomeScreen(...) {
    Scaffold (
        drawerContent = { ... },
        topBar = { ... },
        bodyContent = { ... }
    )
}

事实也的确如此,Compose提供的布局和组件跟Flutter的组件与布局除了名字作用相似之外,连属性也是非常相似的。比如TextStyle这个控制Text样式的属性 直接使用Flutter的代码,把Dart语法修改成Kotlin语法就能直接使用。

我建议需要这些布局、组件相关属性的朋友直接去看Flutter相关的文章,Flutter经过这么久的发展,相关的文档、说明比现在的Compose要详细的多.

Compose 如何集成到现有项目

对于很多现有的项目,从头开始使用Compose是不现实的,我肯可以根据上面提到的手动修改gradle的方式,使项目支持Compose。

在XML中使用

我们可以直接把Compopse作为一个普通View使用

<androidx.compose.ui.platform.ComposeView
        android:id="@+id/compose_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

  findViewById<ComposeView>(R.id.compose_view).setContent {
            ComposeTheme {
                Surface(color = MaterialTheme.colors.background) {
                    Greeting("Android")
                }
            }
        }

Activity、Fragment

作为独立的界面使用Compopse直接使用setContent方法即可。

当前最新版本的Kotlin存在bug,kotlin-android-extensions(用于直接在代码中使用XML中View的Id的扩展)存在bug,Kotlin官方表示在1.4.20版本修复

作者:huclengyue
链接:https://juejin.cn/post/6877056735018745863

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
在这里插入图片描述
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

全套视频资料:

一、面试合集
在这里插入图片描述
二、源码解析合集

在这里插入图片描述
三、开源框架合集

在这里插入图片描述
欢迎大家一键三连支持,若需要文中资料,直接点击文末优快云官方认证微信卡片免费领取↓↓↓

另外,下方整理了《Android Compose 强化实战》资料,戳链接百分百免费领取哟
~~

《Android Compose 强化实战》

Android篇: Jetpack Compose 入门基础和进阶用法 Jetpack Compose 允许你通过组合多个 UI 组件来创建自定义的 UI 元素。 阅读详情

相关推荐

安装或更新 Android Studio

帮助大家学会如何使用Compose

罗小黑的博客 3360

Compose 和 Android 传统View 互相调用

Compose具有超强的兼容性,兼容现有的所有代码,Compose能够与现有View体系并存,可实现渐进式替换。今天,我们就来演示一下,Compose和Android View怎么互相调用,以及在双层嵌套(原生View嵌套Compose,Compose中又嵌套原生View)的情况下,在最外层原生View中,怎么获取到Compose内部的原生View。

朱豪凯的博客 6234

集成电路模拟版图入门-版图基础学习笔记(一)

集成电路设计模拟版图入门笔记,了解版图的定义、意义、工具、设计流程。认识版图及版图组成的两大部件,版图编辑器有哪些,电路图编辑器,了解工艺厂商等。

weixin_52955333的博客 2万+

Android Jetpak Compose快速上手

Compose 介绍 Jetpack Compose发布也快有一年的时间了,虽然目前仍是DEV阶段,但是距离可用已经不远了。Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速度(可以参考几乎一模一样的Flutter,开发速度确实很快)。 Jetpack Compose对于没有接触过声明式UI的小伙伴可能会学习曲线有点陡峭,对于已经能熟练开发Flutter应用的小伙白来说几乎没有难度。(Compose就是参考flutter的模式开发的,代码中还可以看到F

我的专栏 750

如何使用Calibre PERC抽出 点到点/p2p 电阻

@[TOC](如何使用Calibre PERC抽点到点(p2p)电阻) 一、前言 需要实现的功能是从gds中抽出net的点到点的电阻。如下图这样。 二、准备工作 lvs rule pex rule(必要时可以自己定义RC rule) gds p2p点的坐标 定义prode.defs 因为p2p的点是变化的,所以每次prode定义都要重新出,对应的perc rule也是根据每个p2p点的定义来的,perc rule也是每次都要重新出。如果需要可以写一个脚本自动出这些定义文件。 PROBE_POINTS

kobayashiyou的博客 1万+

避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测)

本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。

melon的博客 675

Android Jetpack Compose 超快速上手指南,面试必备技巧

长期以来,Android视图层次结构一直可以表示为界面微件树。界面更新方式是使用等函数遍历树,这种手动操纵视图的方式会提高出错的可能性。在过去的几年中,移动端已开始转向声明性界面模型,比如FlutterSwift UI,所以框架应该也是后续发展的一个方向。客观地讲,Compose 确实是一套比较难学的东西,因为它毕竟太新也太大了,它是一个完整的、全新的框架,确实让很多人感觉「学不动」,这也是个事实。那怎么办呢?学不动怎么办呢?如果你是因为缺少学习资料,而我正好薅到这本谷歌内部大佬根据实战编写的《

2401_84102979的博客 2252

手把手教你用闲置安卓手机搭建个人收款系统(蓝鲸支付私有化部署实战)

本文详细介绍了如何利用闲置安卓手机搭建个人收款系统,实现私有化支付部署。通过开源技术栈和容器化方案,零成本构建安全、高效的支付网关,解决传统支付平台的数据安全和资金风险问题。特别适合个人开发者和小微企业主,无需复杂审批,资金实时到账,显著降低运营成本。

weixin_30363285的博客 382

Android Jetpack Compose 超快速上手指南_android compose jetpakck

Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速度(可以参考几乎一模一样的Flutter,开发速度确实很快)。对于没有接触过声明式UI的小伙伴可能会学习曲线有点陡峭,对于已经能熟练开发Flutter应用的小伙白来说几乎没有难度。Compose就是参考flutter的模式开发的,代码中还可以看到Flutter的相关注释)这篇文章不回去解释过多的原理与技巧,只要是让你能够快速上手开发项目。目前为Alpha版。所以需要在的Canary版本才能体验。

2401_84573250的博客 1037

AIR780E二次开发点灯(LuatOS)

Air780E的LuatOS点灯教程,二次开发教程,可用于所有ec618平台,无需SDK

rootuseres的博客 1万+

C#操作MySQL从入门到精通(3)——新建数据库、新建表

我们要首先新建一个数据库,并且在数据库中新建一系列的表来管理数据库。

qq_34059233的博客 952

Android Jetpack Compose 超快速上手指南(1),2024年最新flutter页面跳转不刷新

长期以来,Android视图层次结构一直可以表示为界面微件树。界面更新方式是使用等函数遍历树,这种手动操纵视图的方式会提高出错的可能性。在过去的几年中,移动端已开始转向声明性界面模型,比如FlutterSwift UI,所以框架应该也是后续发展的一个方向。客观地讲,Compose 确实是一套比较难学的东西,因为它毕竟太新也太大了,它是一个完整的、全新的框架,确实让很多人感觉「学不动」,这也是个事实。那怎么办呢?学不动怎么办呢?如果你是因为缺少学习资料,而我正好薅到这本谷歌内部大佬根据实战编写的《

2401_84102979的博客 1262

12027.linux flash驱动之IS25LP01G/IS25WWP01G

一页:512字节 --> 扇区 4096字节 --> 块 32k,64k, 层层递进关系。

写给自己的笔记 2290

Compose 基础 - 与View互操作

ComposeView负责对Android平台的Activity窗口的适配,AndroidComposeView负责连接LayoutNode视图系统与View视图系统。

HugMua的博客 2061

Transformer实战(38)——视觉Transformer (Vision Transformer, ViT)

Transformer 在自然语言处理 (NLP) 领域取得了显著成就,在许多不同的任务中都表现出色。在本节中,我们将探索视觉 Transformer (Vision Transformer, ViT) 模型。正如 NLP 领域创建了多种模型一样,视觉领域也开发了多种模型,每种模型都为计算机视觉提供了新的视角。通过本节,将学习如何使用 ViT 等模型进行计算机视觉任务,了解基于 Transformer 的预训练计算机视觉模型的工作原理,以及如何针对特定任务进行微调。

盼小辉丶的博客 2896

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android Compose 介绍与实践

Jetpack Compose 是 Google 官方 2019 年推出的UI框架,它可简化并加快 Android 的 UI 开发工作。使用更少的代码、强大的工具和直观的 Kotlin API,快速构建 App 的 UI。2021年迎来 Compose 的正式版,来了解一下这个官方强推的,布局机制、渲染机制、具体写法等可以说是全新的UI框架了。

金戈鐡馬 4679

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android笔记(九):Compose组件的状态

在使用Compose定义UI界面时,可以发现界面的变换往往与Compose组件内部的状态相关,当状态值发生变化时,Compose构成的可组合的界面也会刷新发生相应的变化。在本笔记中将对可组合项的状态的定义、状态提升、状态丢失和状态的保存进行简单介绍。

userhu2012的博客 2532

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android Jetpack Compose介绍

Jetpack Compose 是用于构建原生 Android 界面的新工具包。它使用更少的代码、强大的工具和直观的 Kotlin API,可以帮助您简化并加快 Android 界面开发。2019年5月,Google在I/O大会上公布Compose 2020年9月,发布第一个Alpha版本 2021年7月,发布第一个稳定版本参数指定默认值。 函数参数很多时,可以分为必选参数和可选参数。命名参数可以不按照顺序传参。举例: 文本控件只需要传入文字是什么。 Text API定义 2.2 高阶函数 参数是函数的函数

okclouderx的博客 1448

Android Jetpack Compose 使用入门(一 可组合函数)

首先我们来个问题是Android Jetpack Compose? 答案:Jetpack Compose 是用于构建原生 Android 界面的新工具包。Jetpack Compose 使用更少的代码、强大的工具和直观的 Kotlin API 简化并加快了 Android 上的界面开发。 环境部署将 Android Studio 与 Jetpack Compose 配合使用 有别与正常Android studio版本,这一版比较特殊需要安装特别版本下载如下:https://developer.andr

莫爷博客 1058

android compose 预览编译失败

ComposeViewAdapter 预览失败

qq_28673213的博客 2281

Android compose官方入门教程,基础到实战,快速通关

Compose是Android团队与JetBrain大力推动的新一代UI框架。2021年7月 Android compose 1.0正式版本的诞生,这意味着Compose即将进入生产环节。 国际app巨头Twitter首当其冲,其他国内外企业和程序员的学习热情也都非常高涨,目前国内以字节跳动为首的大小厂也都开始尝试在新页面上使用Compose。 声明式 UI、更简单的自定义、实时且带交互的预览功能、更强的性能和功能...这些优势和特点让Compose飞速超越传统写法的「命令式 UI」的热度,成为程序员们

m0_59162559的博客 5651

原创_Android Jetpack Compose 最全上手指南

算法知识点繁多,企业考察的题目千变万化,面对越来越近的“金九银十”,我给大家准备好了一套比较完善的学习方法,希望能帮助大家在有限的时间里尽可能系统快速的恶补算法,通过高效的学习来提高大家面试中算法模块的通过率。这一套学习资料既有文字档也有视频,里面不仅仅有关键知识点的整理,还有案例的算法相关部分的讲解,可以帮助大家更好更全面的进行学习,二者搭配起来学习效果会更好。部分资料展示:有了这套学习资料,坚持刷题一周,你就会发现自己的算法知识体系有明显的完善,离大厂Offer的距离更加近。【GitHub】

m0_61369275的博客 1657

001 Jetpack Compose入门

新建项目中空Activity就是新建的Compose项目。然后就会得到一个Compose界面的应用。注意要将kotlin环境配置好。

龚礼鹏的博客 589

手把手带你安卓Compose入门

对于想要开始使用 Jetpack Compose 的开发者,这里有一个简明的入门指南,帮助你快速上手并构建你的第一个应用界面。

weixin_42300449的博客 1603

Compose和XML的代码互相调用

就像第一次使用kt一样,很多项目都是java和kt混着用,在难以确保开发协同工作人员同等技术追求(比如有的人想用Compose、有的人不想)的情况下,这种情况极易发生。所以传统XML布局和Compose方法互相调用的场景发生了也很正常。

左大侠的博客 1639
上一篇: 还对Flutter理解不透?看完这些迟早成为大佬~
下一篇: 被同学追问进大厂秘诀,无奈把宝典给了他...
不秃头de程序猿
博客等级 码龄5年 4089粉丝 1478原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值