Jetpack Compose学习记录(一)

目录

    • 前言
    • 控件实时预览
    • Modifier
    • remember
    • 状态提升

前言

学了一段时间的Compose,不得不说声明式UI比原生的开发效率快很多,而且Compose也是Google现在主推的开发模式,可以动态化地更改ui,相比于databinding对数据和布局进行绑定。Compose更近一步,界面上任一控件也可以动态地进行改变。在某些场景下,有些需要写多套布局,而Compose只需要写一套。
缺点个人认为也显而易见,虽然理论上可以实现几乎所有和原生一样的功能,但是比如RecyclerView这样的控件,Compose中的LazyColumn还是没有那么丝滑;还有确实很多合适的第三方库,也会带来一些困扰。
写博客的目的更多是对自己学习的一个记录,方便以后复习,所以需要一定的基础,可能不会一步步地来进行展示。

控件实时预览

利用@Preview()注解,不能带参数。
在这里插入图片描述
更改后可以实时更新,如下:
在这里插入图片描述
还是非常方便的~

一般加@Composable注解,作为ui界面,并且函数首字母大写,和方法区分。
布局元素Column、Row和Box,前两者分别对应列、行。Box 是一个能够将里面的子项依次按照顺序堆叠的布局组件,类似FrameLayout。

Modifier

是Compose ui开发的精髓,是一种修饰符,以组合的方式来修改组件,顺序很重要,会影响。
主要作用如下:

  • 可以去更新可组合项的大小,布局,行为和外观。
  • 添加互动。例如点击,滚动,可拖拽,缩放等。
  • 处理用户输入
  • 添加信息,如无障碍

clickable 使可组合项响应用户输入,并显示涟漪。
padding 在元素周围留出空间。
fillMaxWidth 使可组合项填充其父项为它提供的最大宽度。
size() 指定元素的首选宽度和高度。

在行尾放元素
weight 修饰符会让元素填满所有可用空间,使其“具有弹性”,也就是会推开其他没有权重的元素(即“无弹性”元素)。该修饰符还会使 fillMaxWidth 修饰符变得多余。
在这里插入图片描述
Surface 从字面上来理解,是一个平面,在 Material Design 设计准则中也同样如此,我们可以将很多的组件摆放在这个平面之上,我们可以设置这个平面的边框,圆角,颜色等等。

remember

对数据进行缓存,避免重新重组后数据丢失了。
可以进行一个ui的动态改变,所谓的内容的状态。比如
当为true,文本显示小猫咪,false重组显示为小狗。

val isShow = remember { mutableStateOf(false) },
if(isShow.value){
	Text("小猫咪")
}else{
	Text("小狗")
}

还可以

var isShow by remember { mutableStateOf(false) },

这样的话我们把isShow委托给了右边,就不需要使用value了。

状态提升

在可组合函数中,被多个函数读取或修改的状态应位于共同祖先实体中,此过程称为状态提升。“提升”意为“提高”或“升级”。
如果你的子组合函数被多次重用,请不要使其有状态函数( stateful),始终使用状态提升以便可以重用并使它们感觉独立。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/802705.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FreeCAD源码分析:Serialization

序列化(Serialization)是在程序运行时将对象转换成字节流的过程,进而将二进制字节流罗盘到文件系统或者通过网络发送到远端。而反序列化(Deserialization)则恰恰相反,是由二进制字节流重新构建对象的过程。 Ref. from Boost Serialization Here, we use …

电子标书怎么盖章?

电子标书怎么盖章?下面是利用e-章宝(##### 与在线盖章的平台不同,专业的盖章软件在盖章时无需要上传你的文档,甚至在无网络下都可以使用,且保密性非常强,如e-章宝。如果你的文件保密性强,用网上…

CSS综合案例(快报模块头部制作)

(大家好,今天我们将继续来学习CSS的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 一、前述 二、案例分析 1.样例参看 2.拆分分析 三、案例实施 一、前述 案例:快报模块头部制…

open3d:随机采样一致性分割平面

1、背景介绍 随机采样一致性算法(RANSAC Random Sample Consensus)是一种迭代的参数估计算法,主要用于从包含大量噪声数据的样本中估计模型参数。其核心思想是通过随机采样和模型验证来找到数据中最符合模型假设的点。因此,只要事…

spring框架(ioc控制反转 aop面向切面编程)

目录 服务端三层开发: spring框架(ioc控制反转 aop面向切面编程) 1、Spring框架的优点 什么是事物? 2、Spring的IOC核心技术 什么是ioc? 代码举例:(详细流程见笔记) **applic…

NSSCTF-Web题目26(PHP弱比较)

目录 [SWPUCTF 2022 新生赛]funny_php 1、题目 2、知识点 3、思路 [ASIS 2019]Unicorn shop 4、题目 5、知识点 6、思路 [SWPUCTF 2022 新生赛]funny_php 1、题目 2、知识点 弱比较、双写绕过 3、思路 出现源代码,我们进行审计 第一个if 这里要我们GET方…

AI PC创造新商机,ISP与HPD集成单芯片方案受欢迎

今年以来,AI PC逐渐成为市场的焦点,因为AI PC给多年一成不变的PC市场带来了新的看点,也给了消费者升级的理由。今年是AI PC的元年,上半年不论是芯片厂商,还是PC厂商都在AI PC市场快速布局。AI PC相关的大模型、生态&am…

CRMEB 多商户Java版 v1.7更新预告!积分商城要来了

👩‍💻:下个版本有积分商城吗? 👨‍💻:积分商城什么时候可以出呢? 🙋:什么时候能上拼团呢? 🙋‍♂️:图片热区&#xf…

用Java连接MySQL数据库的总结

✨个人主页: 不漫游-CSDN博客 前言 在日常开发中,使用Java连接MySQL数据库是一个常见的任务,涉及多个步骤。接着我就带着大家细细看来~ 一.下载.jar 包文件 1.什么是.jar 文件 通俗点讲就是一个压缩包,不过里面存放的都是由Java代…

沙盒软件大揭秘:你的数字世界“防火墙”

在数字时代,我们每天都会接触到各种各样的软件,其中不乏一些来源不明、可能存在潜在威胁的程序,我们总担心不小心点到什么“雷区”,让电脑或手机变得“病怏怏”。 为了保护我们的系统免受侵害,沙盒软件应运而生&#…

JavaScript Math 函数举例

https://andi.cn/page/621577.html

【YOLOv5/v7改进系列】改进池化层为YOLOv9的SPPELAN

一、导言 YOLOv9提出了一种新的方法和架构,旨在解决深度神经网络中的信息瓶颈问题并提升模型的性能。以下是该研究的主要优点: 理论分析与创新: 提出了可编程梯度信息(PGI)的概念,以应对深度网络为实现多重…

windows下gcc编译C、C++程序 MinGW编译器

文章目录 1、概要2、MinGW安装2.1 编译器下载2.2 编译器安装2.3 设置环境变量2.4 查看gcc版本信息 3、编译C、C程序3.1 编写Hello World.c3.2 编译C程序3.3 运行程序3.4 编译C程序 1、概要 GCC原名为GNU C语言编译器(GNU C Compiler),只能处…

技能 | postman接口测试工具安装及使用

哈喽小伙伴们大家好!今天来给大家分享一款轻量级,高效好用的接口测试工具-postman. Postman是一个流行的API开发工具,主要用于测试、开发和文档化API。以下是关于Postman的介绍及其主要使用场景: Postman介绍: 1. 功能丰富的API客户端&#…

用Pytorch实现线性回归(Linear Regression with Pytorch)

使用pytorch写神经网络的第一步就是需要准备好数据集,设计模型(用于计算y_hat(y的预测值)),构造损失函数和优化器(使用PyTorch API),写训练周期(前馈&#xf…

FPGA资源容量

Kintex™ 7 https://www.amd.com/zh-tw/products/adaptive-socs-and-fpgas/fpga/kintex-7.html#product-table AMD Zynq™ 7000 SoC https://www.amd.com/en/products/adaptive-socs-and-fpgas/soc/zynq-7000.html#product-table AMD Zynq™ UltraScale™ RFSoC 第一代 AMD Z…

浅说区间dp(下)

文章目录 环形区间dp例题[NOI1995] 石子合并题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路 [NOIP2006 提高组] 能量项链题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路 [NOIP2001 提高组] 数的划分题目描述输入格式输出格式样例 #1样例输…

AI大模型加持的新一代网络舆情系统——“速途观澜”舆情感知引擎发布上线

**近日,AI和数据驱动的新媒体生态服务商速途网络,发布上线企业声誉管理智能服务平台“速途观澜”。**该平台融合了速途最新研发升级的“观澜舆情感知引擎”,一款以大数据和AI为底座的网络舆情态势感知系统,这是速途在产品创新研发…

orcad导出pdf 缺少title block

在OrCAD中导出PDF时没有Title Block 最后确认问题在这里: 要勾选上Title Block Visible下面的print

共建特色基地 协同互促育人

作为芯片和集成电路、人工智能、智能网联车等临港重点产业布局的知识密集型相关企业,核心技术人才和技术骨干是公司参与全球竞争的重要核心竞争力之一。 知从科技通过不断的创新和规范,在深化产教融合、校企合作、“双师型”、联合办学协同育人、产业人…