Jetpack compose初尝试
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初尝试的更多相关文章
- 高效动画实现原理-Jetpack Compose 初探索
一.简介 Jetpack Compose是Google推出的用于构建原生界面的新Android 工具包,它可简化并加快 Android上的界面开发.Jetpack Compose是一个声明式的UI框架 ...
- R语言爬虫初尝试-基于RVEST包学习
注意:这文章是2月份写的,拉勾网早改版了,代码已经失效了,大家意思意思就好,主要看代码的使用方法吧.. 最近一直在用且有维护的另一个爬虫是KINDLE 特价书爬虫,blog地址见此: http://w ...
- SQLSERVER2012里的扩展事件初尝试(下)
SQLSERVER2012里的扩展事件初尝试(下) SQLSERVER2012里的扩展事件初尝试(上) 我们继续文章扩展事件在Denali CTP3里的新UI(二)里的这个实验 脚本文件下载:http ...
- SQLSERVER2012里的扩展事件初尝试(上)
SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...
- Jetpack Compose What and Why, 6个问题
Jetpack Compose What and Why, 6个问题 1.这个技术出现的背景, 初衷, 要达到什么样的目标或是要解决什么样的问题. Jetpack Compose是什么? 它是一个声明 ...
- Jetpack Compose和View的互操作性
Jetpack Compose Interoperability Compose风这么大, 对于已有项目使用新技术, 难免会担心兼容性. 对于Compose来说, 至少和View的结合是无缝的. (目 ...
- Jetpack Compose学习(1)——从登录页开始入门
原文地址:Jetpack Compose学习(1)--从登录页开始入门 | Stars-One的杂货小窝 Jetpack Compose UI在前几天出了1.0正式版,之前一直还在观望,终于是出了正式 ...
- Jetpack Compose 1.0 终于要投入使用了!
前言 Jetpack Compose 是用于构建原生界面的「新款 Android 工具包」.2021 Google IO 大会上,Google宣布:「Jetpack Compose 1.0 即将面世」 ...
- Android Kotlin Jetpack Compose UI框架 完全解析
前言 Q1的时候公司列了个培训计划,部分人作为讲师要上报培训课题.那时候刚从好几个Android项目里抽离出来,正好看到Jetpack发布了新玩意儿--Compose,我被它的快速实时打包给吸引住了, ...
- Android全新UI编程 - Jetpack Compose 超详细教程
1. 简介 Jetpack Compose是在2019Google i/O大会上发布的新的库.Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速 ...
随机推荐
- Educational Codeforces Round 112 (Rated for Div
Educational Codeforces Round 112 (Rated for Div. 2) CodeForces - 1555D Say No to Palindromes 如果一个字符串 ...
- main(调用一个公共组件)
app.vue <template> <div> <Student/> <School></School> </div> < ...
- Beaver解析代码反向生成语法文件
背景 Beaver是一款LALR的语法生成工具,现在有一个反编译项目的需求,需要将Beaver语法文件编译后的代码反向生成语法文件的需求,不去评论需求多么傻逼,直接干 设计 flowchart 语法文 ...
- Android 6.0动态添加权限(Finn_ZengYuan博客)
1,随着手机版本变高,各种权限也有所限制:以下代码可人性化添加动态权限: 权限工具类1,2,3,4: 1,FinnPermissionConfig.CLass package com.finn.too ...
- vue请求插件axios响应拦截302
axios.interceptors.response.use(function (response) { return response;}, function (error) { // 对请求错误 ...
- java后端JVM面试资料
目录 JDK,JRE,JVM三者的区别与联系 讲⼀讲JVM跨平台与跨语⾔ JVM的运⾏时数据区有哪些? 什么是堆内存?堆内存包含哪些部分? 什么是内存溢出 什么是内存泄漏?与内存溢出有什么关系? 对象 ...
- Web安全测试之XSS【转】
作者: 小坦克 来源: 博客园 原文链接:http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html XSS 全称(Cross ...
- 一些test短代码
#include <stdio.h> int main(){ char ray_tx_pwr[2][3]={{1,2,3},{4,5,6}}; int i = 0; printf(&quo ...
- VUE3声明插件TypeScript类型
declare module '*.vue' { import type { DefineComponent } from 'vue'; // eslint-disable-next-line @ty ...
- js 表格分页,ajax请求后台数据前台分页
$(function(){ var url="后台给的地址"; var shuju=document.getElementById("shuju"); cons ...