![](../../asset/images/user/bgImg_default.jpeg)
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
最近二维码真是越来越火了,随便电视上、网络上、商场里,到处都是二维码。而内嵌二维码扫描功能的软件也越来越多,QQ、微信、UC浏览器等等应用都可以对着二维码扫一扫,感觉我们自己的应用里不加上二维码扫描功能,都跟不上时代潮流了。所以今天我就将带着大家一起,在我们自己的程序里加入二维码扫描的功能。不过,二维码功能如果真要做起来还是非常复杂的,从零开始实现不太现实,比较好的做法就是借助现有的开源项目。目前
其实在上一篇文章中,有个知识点一直在反复出现,但是我却一直没有讲解,那就是Modifier。之所以没有讲,是因为这个东西太重要了,需要单独用一篇文章来讲解才行。只要你使用了Compose,那么就一定绕不开Modifier。甚至可以说,任何一个Composable函数都应该有一个Modifier参数才对,如果没有的话,那么就说明这个Composable函数写的有问题。我在刚开始学习Compose的时
![文章图片](https://img-blog.csdnimg.cn/06c13060aed64e4ba01ed7a1039b8e8c.png)
大家好,写给初学者的Jetpack Compose教程又来了。经过前面4篇文章的学习,相信大家都已经成功入门了Compose编程。不仅了解了Compose的核心编程理念(声明式UI),而且已经可以使用Compose编写一些简单的小程序了。今天我们要学习的是Compose中必学的一个控件,Lazy Layout。这是一个什么样的控件呢?
![文章图片](https://img-blog.csdnimg.cn/direct/d80fc9e204eb439f9c13cdb44bc3e575.png)
大家好,写给初学者的Jetpack Compose教程第4篇更新了。今天我们要介绍的是Compose当中至关重要的一个组件,State。State不光非常的重要,同时可以让我们的Compose学习之旅变得更加有趣。为什么这么说呢?因为在之前的学习过程当中,我们所实现的都是静止的界面效果,而有了State之后,则可以让界面开始动起来了。
![文章图片](https://img-blog.csdnimg.cn/746d8cc1a24441828ccc6304192ef077.png)
这里将shouldShowAddButton变量用derivedStateOf包裹了进来,那么根据derivedStateOf的特性,只有当这个表达式中的条件发生变化了,才算是State的值发生了变化,这时才会触发重组。不同的是,derivedStateOf接收的一个表达式,只有当这个表达式中的条件发生变化了,那么才算是State的值发生了变化,这时才会触发重组。在这篇文章中,我很细致地讲解了La
![文章图片](https://img-blog.csdnimg.cn/direct/6f17ebd7e24047238de50337ff14fc1b.png)
在得到所有子布局测量好的尺寸之后,我们选择其中最宽的子布局的宽度来作为我们自定义布局MyColumn的宽度,选择所有子布局高度的总和来作为MyColumn的高度。有了这两个参数之后,我们就可以遍历measurables中的所有可测量子布局,每别调用它们的measure函数来测量它们的尺寸,并将测量的结果赋值给placeables这个集合变量。编写自定义布局需要用到的最重要的一个函数就是Compos
![文章图片](https://i-blog.csdnimg.cn/direct/2aea01f9e490463eba43aba92bf09c47.png)
比如用户进入我们App的首页,首页内容的加载是需要一些时间的,通常这个时候我们会先显示一个加载框或者是占位图给用户,等首页内容加载完成之后,再把加载框隐藏掉,将正常的首页呈现给用户。最后,View真的已经太老太老了,它是随着Android 1.0系统发布的,至今已经过去了十几个年头。今天的这篇文章是这个系列的序章,我们还并没有通过一个实际可运行的例子来去学习如何编写Compose程序,但是希望这篇
![文章图片](https://img-blog.csdnimg.cn/2490435ecfb648a193bec0445afa87a6.jpeg)
大家好,写给初学者的Jetpack Compose教程又更新了。准确来说,这才是本系列的第一篇文章。因为上篇文章只是个序篇,和大家聊一聊为什么我们要学习Compose。Compose的知识体系很庞大,因此这个系列教程可能我会写很多篇。当然我并不是什么Compose高手,目前我也是个初学者。本教程实质上就是我在自我学习Compose的同时,将这些学习记录分享给大家,希望大家可以零基础跟着我一起学习。
![文章图片](https://img-blog.csdnimg.cn/09161c9b032b422ebf1428c8b628f70a.jpeg)
依赖注入的英文名是Dependency Injection,简称DI。事实上这并不是什么新兴的名词,而是软件工程学当中比较古老的概念了。如果要说对于依赖注入最知名的应用,大概就是Java中的Spring框架了。Spring在刚开始其实就是一个用于处理依赖注入的框架,后来才慢慢变成了一个功能更加广泛的综合型框架。我在学生时代学习Spring时产生了和绝大多数开发者一样的疑惑,就是为什么我们要使用依赖
Android 12正式版即将发布。这次的Android系统变化当中,UI的变化无疑是巨大的。Google在Android 12中采取了一种叫作Material You的界面设计,一切以你为中心,以你的喜好为风格。相信大家一旦上手Android 12之后应该能立刻察觉到这些视觉方面的变化。另外还有一个非常显著的视觉变化就是,Android 12强制给所有的App都增加了SplashScreen的功
![文章图片](https://img-blog.csdnimg.cn/6b8ad584b59148ae86460121a50cd17f.png)