2021/07/29 Jetpack compose1.0正式发布,已经可以在生产环境中使用了。

下面的内容为根据官方教程尝试的总结,上手没难度,而且也不需要配置什么环境。

Android 开发者  |  Android Developers (google.cn)

Jetpack Compose是用于构建原生Android界面的工具包。不需要xml布局,也不需要创建界面微件,只需要调用Jetpack Compose函数(使用@Composable注解的函数)即可。

步骤:

1. 下载Android Studio Arctic Fox | 2020.3.1(否则创建不了compose工程)

2.  File - New - New Project - Empty Compose Activity

3. 编写代码

代码示码

class MainActivity : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
// 调用@Composable注解的函数
Study()
}
}
} @Composable
fun Study() {
// 设置主题
MaterialTheme {
val typography = MaterialTheme.typography
// Column:垂直堆叠元素
Column(
// 配置布局,上下左右设置16dp空隙
modifier = Modifier.padding(16.dp)
) {
// 创建图片
Image(
painter = painterResource(id = R.drawable.ic_launcher_background),
contentDescription = null,
// 配置图片
modifier = Modifier
// 高度
.height(180.dp)
// 宽度,填充布局
.fillMaxWidth()
// 圆角,Material Design
.clip(shape = RoundedCornerShape(4.dp)),
// 图片填充Column的整个宽度,并根据需要裁剪为适当的高度
contentScale = ContentScale.Crop
)
// 添加16dp高的空隙
Spacer(Modifier.height(16.dp))
// 创建Textview显示文本
Text(
"Study Android together Androidを勉強しましょう 一起学习Android吧 测试内容请忽略",
// 配置主题中的特定的式样
style = typography.h6,
// 设置文字显示的最多行数
maxLines = 2,
// 不够显示的情况下,显示...,未设置情况下会被截断
overflow = TextOverflow.Ellipsis
)
Text(
"Kotlin",
style = typography.body2
)
Text(
"Jetpack compose",
style = typography.body2
)
}
} } // 添加@Preview注解的函数,才能在Android Studio中预览
// Android Studio中以@Preview为单位提供预览
// 如果有两个@Preview函数的话,会提供两个预览,内容并不会合并在一起
@Preview
@Composable
fun DefaultPreview() {
Study()
}

显示效果

Jetpack compose初尝试的更多相关文章

  1. 高效动画实现原理-Jetpack Compose 初探索

    一.简介 Jetpack Compose是Google推出的用于构建原生界面的新Android 工具包,它可简化并加快 Android上的界面开发.Jetpack Compose是一个声明式的UI框架 ...

  2. R语言爬虫初尝试-基于RVEST包学习

    注意:这文章是2月份写的,拉勾网早改版了,代码已经失效了,大家意思意思就好,主要看代码的使用方法吧.. 最近一直在用且有维护的另一个爬虫是KINDLE 特价书爬虫,blog地址见此: http://w ...

  3. SQLSERVER2012里的扩展事件初尝试(下)

    SQLSERVER2012里的扩展事件初尝试(下) SQLSERVER2012里的扩展事件初尝试(上) 我们继续文章扩展事件在Denali CTP3里的新UI(二)里的这个实验 脚本文件下载:http ...

  4. SQLSERVER2012里的扩展事件初尝试(上)

    SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...

  5. Jetpack Compose What and Why, 6个问题

    Jetpack Compose What and Why, 6个问题 1.这个技术出现的背景, 初衷, 要达到什么样的目标或是要解决什么样的问题. Jetpack Compose是什么? 它是一个声明 ...

  6. Jetpack Compose和View的互操作性

    Jetpack Compose Interoperability Compose风这么大, 对于已有项目使用新技术, 难免会担心兼容性. 对于Compose来说, 至少和View的结合是无缝的. (目 ...

  7. Jetpack Compose学习(1)——从登录页开始入门

    原文地址:Jetpack Compose学习(1)--从登录页开始入门 | Stars-One的杂货小窝 Jetpack Compose UI在前几天出了1.0正式版,之前一直还在观望,终于是出了正式 ...

  8. Jetpack Compose 1.0 终于要投入使用了!

    前言 Jetpack Compose 是用于构建原生界面的「新款 Android 工具包」.2021 Google IO 大会上,Google宣布:「Jetpack Compose 1.0 即将面世」 ...

  9. Android Kotlin Jetpack Compose UI框架 完全解析

    前言 Q1的时候公司列了个培训计划,部分人作为讲师要上报培训课题.那时候刚从好几个Android项目里抽离出来,正好看到Jetpack发布了新玩意儿--Compose,我被它的快速实时打包给吸引住了, ...

  10. Android全新UI编程 - Jetpack Compose 超详细教程

    1. 简介 Jetpack Compose是在2019Google i/O大会上发布的新的库.Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速 ...

随机推荐

  1. scrapy中发送post请求

    1.可以使用`yield scrapy.FormRequest(url,formdata,callback)`方法发送POST请求. 其中构造参数formdata可以是字典,也可以是可迭代的(key, ...

  2. oracle之如何获取执行计划方法

    1.什么是执行计划 为了执行sql语句,Oracle在内部必须实现许多步骤,这些步骤可能是从数据库中物理检索数据行,或者用某种方法来准备数据行等,接着Oracle会按照一定的顺序一次执行这些步骤,最后 ...

  3. Jenkins自动化部署(linux环境)---代码提交触发Jenkins构建

    1.在工程中点击构建触发器中选择Generic Webhook Trigger,填写token 2.gitee配置Webhook 选择gitee项目中的Settings->Webhooks> ...

  4. lua-table面向对象

    --使用table封装面向对象beauty={name = " "}--封装对象方法function beauty.init(self, name)print("十八年前 ...

  5. [*]Is L2 Physics-Informed Loss Always Suitable for Training Physics-Informed Neural Network?

    NeurIPS 2022 本篇工作对PINN中的物理损失进行了探究,作者认为L2损失并不总是适用于训练PINN.并从PDE解的稳定性角度给出了理论性的说明.读了这篇文章,感觉自己的毕业论文做的十分浅显 ...

  6. jupyter notebook代码无法运行

    如果是anaconda的话,直接就带有jupyter而不需要重新安装,你这样子就是路径混乱了.先输入jupyter kernelspec list查看安装的内核和位置,然后进入显示的安装目录,打开ke ...

  7. 暴雪、迪士尼大佬用什么画画?RayLink远控软件助力解锁远程创作

    CG绘画从业者,如原画师.插画师.漫画家.设计师等,一定对数位板\数位屏不陌生,数位板\数位屏是完成CG绘画作品的重要绘图工具之一. 从画画小白到数字绘画大神,从0基础插画培训班学生到国际知名游戏.动 ...

  8. 【笔记】DDD实战课-人保架构欧创新

    目录 开篇 学好DDD,你能做什么? 基础 领域驱动设计:微服务设计为什么要选择 DDD? DDD的两层设计 DDD与微服务的关系 领域.子域.核心域.通用域和支撑域:傻傻分不清? 领域和子域 核心域 ...

  9. axios与ajax的优缺点

    axios和ajax的区别是什么?        1.axios是一个基于Promise的HTTP库,而ajax是对原生XHR的封装:         2.ajax技术实现了局部数据的刷新,而axio ...

  10. (四)kafka基础术语

    1 Topic Kafka消息分类的标签,是一个逻辑概念. 2 Partion 主题作为消息的归类,可以细分为一个或多个分区,分区可以看做是对消息的二次归类.分区可以有一个至多个副本,每个副本对应一个 ...