Android Jetpack新成员Compose尝鲜

2023-11-03

前言

Compose的alpha版已经出来有段时间了,前不久的GDG上郭神介绍了Hilt,没曾想居然没有Compose和4.2版本的studio介绍。

Compose是google今年在jetpack里新增的一位成员,想着能越过传统的xml,用kotlin代码 + 注解编写布局的形式来构建页面,参照Flutter和iOS的感觉,当然代码也可以即时预览成画面,据我体验下来比传统安装apk快很多,不过比xml预览或Flutter的预览还是慢不少,这个以后应该能优化的。先来看看官网的介绍和代码大致长什么样。

在这里插入图片描述
代码大致长这个样子,利用kotlin的一些结构化的特性,是不是Flutter的感觉瞬间就上来了。
在这里插入图片描述
随便点个组件进去看一下,这下kotlin的默认参数就发挥了巨大作用
在这里插入图片描述

尝鲜配置步骤

  1. 首先,环境肯定是现在4.1studio正式版不支持的,到官网下载4.2Canary预览版本
    在这里插入图片描述
  2. 打开studio后新建project,选择Empty Compose Activity,或者也可以选择导入google提供的sample,也可以参考 在现有项目中引入Compose
    在这里插入图片描述
    在这里插入图片描述
  3. 创建完成后我们得到这样的一个默认工程
package com.example.dt
import ...

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            DTTheme {
                // A surface container using the 'background' color from the theme
                Surface(color = MaterialTheme.colors.background) {
                    Greeting("Android")
                }
            }
        }
    }
}

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

@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
    DTTheme {
        Greeting("Android")
    }
}

Build后预览图长这样,现在是一个wrap_content的TextView,用起来确实很方便,不用在xml里写一大堆属性了
在这里插入图片描述

配置到这里就完了,后续我会更新基本用法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Jetpack新成员Compose尝鲜 的相关文章

随机推荐

  • Unity实现异步加载场景

    一 创建UGUI 首先我们在LoginCanvas登入面板下面创建一个Panel 取名为LoadScreen 再在loadScreen下面创建一个Image组件 放置背景图片 然后我们再在lpadScreen下面继续创建一个Slider 这
  • jdbc C3P0容错和自动重连

    1 C3P0容错和自动重连与以下配置参数有关 breakAfterAcquireFailure true表示pool向数据库请求连接失败后标记整个pool为block并close 就算后端数据库恢复正常也不进行重连 客户端对pool的请求都
  • CentOS8基础篇14:使用源代码安装FTP软件

    一 TAR包管理工具简介 TAR Tape Archive TAR 是Linux下的包管理工具 利用tar命令可以将要备份保存的数据打包成一个扩展名为 tar的文件 以便文件的保存 需要使用时再利用tar命名进行释放即可 使用tar命令对文
  • Java面向对象编程

    下面有关JVM内存 说法错误的是 A 程序计数器是一个比较小的内存区域 用于指示当前线程所执行的字节码执行到了第几行 是线程隔离的 B Java方法执行内存模型 用于存储局部变量 操作数栈 动态链接 方法出口等信息 是线程隔离的 C 方法区
  • 自己组装电脑配置清单2022 自己组装电脑需要哪些配件

    自己组装电脑需要主板 CPU处理器 CPU散热器 内存条 显卡 硬盘 鼠标 键盘 声卡 耳机 音箱 机箱 显示器 电源等等 组装电脑怎么搭配更合适这些点很重要 http www adiannao cn du 3500左右性价比游戏型组装电脑
  • 【RPA】机器人流程自动化(RPA)概念、原理与实践

    多数人每天都会使用到一些机器人流程自动化工具 例如读取邮件和系统 计算 生成文件和报告 而在未来 那些你不想做的枯燥的工作 也许真的可以不做了 重复化 标准化的工作都可以让机器人帮你完成 本期推文特邀陈剑独家原创阐述RPA的概念 原理与实践
  • Kubernetes 的控制器模型

    文章目录 控制器模式 控制循环 控制器的配置和定义 Deployment 控制器详解 水平扩展 收缩 滚动更新 版本控制 控制器模式 本篇文章我们来看看 编排 这个 Kubernetes 项目最核心的功能吧 经过上篇文章的介绍后 你可能已经
  • redis主从-哨兵模式(windows下搭建)

    一 下载 由于redis官方并不支持windows操作系统 所以官网上是下不到的 需要到gitlab上下载 下载地址如下 https github com MicrosoftArchive redis releases 二 解压安装 将下载
  • webpack4---模块化打包工具(一)

    一 webpack4初识 1 首先先了解几个规范 ES规范 导出 export default Header 导入 import Header from header js CommonJS规范 导出 module exports Head
  • 如何快速安装和配置Node.js环境

    Node js是一种可以简化Web应用程序开发的平台 它使用JavaScript编写 并使用Chrome V8 JavaScript引擎 本文将介绍如何快速安装和配置Node js环境 为读者打开了Node js的大门 并提供了背景信息 一
  • 有趣的数据结构算法11——实现中缀表达式到后缀表达式的转换

    有趣的数据结构算法11 实现中缀表达式到后缀表达式的转换 解题思路 实现代码 GITHUB下载连接 这是学习栈的最后一篇blog了 在上一篇博客里 讲述了如何利用栈计算后缀表达式的结果 但是谁会无缘无故用后缀表达式写一个式子在那里计算呢 这
  • Quartz 之 JobExecutionContext 解读

    项目地址 https github com yuleiqq quartz example tree master quartz study 查看源码注释可以得知 JobExecutionContext 是一个包含了各种上下文信息的句柄 指向
  • 软件工程-分离原理

    分离原理是建立企业管理信息系统分析方法体系的基础分离原理与组合原理的关系定义分离原理 将研究对象中符合相同设计方法的同类项进行分离 归集 这种分离方式为在软件工程中建立具有普遍意义的分析与设计模型奠定了基础 作用将企业的运行体系进行拆分 在
  • [QT编程系列-13]:QT快速学习 - 1- 初识

    目录 第1章 QT的介绍 1 1 QT VS MFC 1 2 QT历史 1 3 QT的应用 1 4 QT学习方法 1 5 QT对象树 1 6 2 8定律 1 7 QT优势 1 8 QT支持的平台 第2章 QT UI是各种控件对象的堆积 第3
  • 【2021版本】软件测试的分类

    按测试阶段分类 单元测试 对软件中最小可充实单元进行检查和验证 单元测试的原则 尽可能保证各个测试用例是相互独立的 一般由代码的开发人员来实施 用以检验所开发的代码功能符合自己的设计要求 单元测试的益处 能尽早发现缺陷 有利于重构 简化集成
  • 决策树的典型案例

    小王是一家著名高尔夫俱乐部的经理 但是他被雇员数量问题搞得心情十分不好 某些天好像所有人都來玩高尔夫 以至于所有员工都忙的团团转还是应付不过来 而有些天不知道什么原因却一个人也不来 俱乐部为雇员数量浪费了不少资金 小王的目的是通过下周天气预
  • CentOS7 升级Python2.x到3.x

    CentOS 7 中默认安装了 Python 版本比较低 2 7 5 为了使用新版 3 x 需要对旧版本进行升级 由于很多基本的命令 软件包都依赖旧版本 比如 yum 所以 在更新 Python 时 建议不要删除旧版本 新旧版本可以共存 一
  • 临时标识--免登陆uuid

    一 什么是临时标识 就是一个字符串 可以让用户查看购物车等需要注册登录的信息 通常用uuid就可以创建这个字符串 临时标识 在请求拦截器中加 存储在vuex中的state userTempId 二 正式开始 1 下载创建uuid 并且生成用
  • 安卓隐藏输入法键盘以及去除光标方法

    在开发中遇到一个需求 点击屏幕非编辑区以及点击键盘回车键后要隐藏输入法以及光标要关闭 因此向各位分享一下做法 一 点击屏幕处于非edittext时让键盘消失以及清除edittext光标方法 1 在Activity中使用如下代码 重写事件分发
  • Android Jetpack新成员Compose尝鲜

    前言 Compose的alpha版已经出来有段时间了 前不久的GDG上郭神介绍了Hilt 没曾想居然没有Compose和4 2版本的studio介绍 Compose是google今年在jetpack里新增的一位成员 想着能越过传统的xml