
Jetpack Compose
文章平均质量分 96
原创Jetpack Compose系列教程
guolin
每当你在感叹 如果有这样一个东西就好了的时候 请注意 其实这是你的机会
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
写给初学者的Jetpack Compose教程,大屏设备适配
本文介绍了如何在Jetpack Compose中适配不同尺寸的Android设备,特别是大屏设备。随着Android 16系统将不再支持限制应用的横竖屏旋转,开发者需要更好地适配大屏设备。文章首先建议使用Android Studio中的可调整尺寸模拟器来测试不同设备类型的界面效果。接着,介绍了如何使用WindowSizeClass来获取设备的屏幕尺寸类型,并根据不同尺寸调整界面布局。最后,通过一个简单的Feed流界面示例,展示了如何利用LazyVerticalGrid在大屏设备上实现一行显示多条内容,从而提原创 2025-05-14 08:00:00 · 2209 阅读 · 0 评论 -
写给初学者的Jetpack Compose教程,Side Effect
官方文档对于Side Effect的定义描述还是比较抽象的,根据官方文档的说法,Side Effect指的就是,在一个Composable函数的内部发生了超出其作用域的状态变更。要怎么理解这句话呢?处理MainScreen逻辑...这段代码的核心诉求还是比较好理解的,就是在MyApp()这个Composable函数的内部,我们先调用Initialize()函数对mInit变量进行初始化,完成了初始化之后再在MainScreen()函数中开始处理主页面的逻辑。原创 2025-03-26 08:00:00 · 3928 阅读 · 5 评论 -
写给初学者的Jetpack Compose教程,动画
大家好,写给初学者的Jetpack Compose教程又更新了。今天来讲一讲Compose动画方面的知识。其实我并不是很擅长写动画相关的内容,《第一行代码》整本书里面我都没有写过任何讲解动画的知识。当然书本静态纸张不容易表达动画的效果可能也是我没有写动画的原因之一。上面这3篇文章讲的都是基于Android View系统的属性动画。虽说属性动画最初的设计理念就是要脱离View的限定,围绕属性的概念重新打造。原创 2024-12-30 08:00:00 · 6459 阅读 · 5 评论 -
写给初学者的Jetpack Compose教程,edge-to-edge全面屏体验
发现了这个现象之后,可能细心的朋友立马就察觉到了,那如果我手机底部的导航栏模式不是这种手势导航栏,而是传统的Back、Home、Task 3按键导航栏,edge-to-edge全面屏体验会变成什么样呢?绝大部分的App其实都只使用了绿色这部分的空间,屏幕上方的状态栏以及屏幕下方的导航栏这两个白色部分的空间都是没有利用起来的,想想你写的App是不是也是这样?适配的代码其实还是比较简单的,主要就是借助Compose提供的一些内置函数,来对某些指定的控件进行偏移,保证其不会被系统的状态栏或导航栏遮挡住就可以了。原创 2024-10-22 08:00:00 · 9331 阅读 · 7 评论 -
写给初学者的Jetpack Compose教程,高级Layout
在得到所有子布局测量好的尺寸之后,我们选择其中最宽的子布局的宽度来作为我们自定义布局MyColumn的宽度,选择所有子布局高度的总和来作为MyColumn的高度。有了这两个参数之后,我们就可以遍历measurables中的所有可测量子布局,每别调用它们的measure函数来测量它们的尺寸,并将测量的结果赋值给placeables这个集合变量。编写自定义布局需要用到的最重要的一个函数就是Compose提供的Layout函数,事实上,几乎所有的Compose控件都是基于Layout函数打造出来的。原创 2024-07-16 08:00:00 · 15017 阅读 · 10 评论 -
写给初学者的Jetpack Compose教程,用derivedStateOf提升性能
这里将shouldShowAddButton变量用derivedStateOf包裹了进来,那么根据derivedStateOf的特性,只有当这个表达式中的条件发生变化了,才算是State的值发生了变化,这时才会触发重组。不同的是,derivedStateOf接收的一个表达式,只有当这个表达式中的条件发生变化了,那么才算是State的值发生了变化,这时才会触发重组。在这篇文章中,我很细致地讲解了Lazy Layout的用法,但同时也埋下了一个坑,这个坑会严重影响Lazy Layout的性能。原创 2024-05-21 08:00:00 · 17682 阅读 · 10 评论 -
写给初学者的Jetpack Compose教程,Lazy Layout
大家好,写给初学者的Jetpack Compose教程又来了。经过前面4篇文章的学习,相信大家都已经成功入门了Compose编程。不仅了解了Compose的核心编程理念(声明式UI),而且已经可以使用Compose编写一些简单的小程序了。今天我们要学习的是Compose中必学的一个控件,Lazy Layout。这是一个什么样的控件呢?原创 2023-12-19 08:00:00 · 25516 阅读 · 7 评论 -
写给初学者的Jetpack Compose教程,使用State让界面动起来
大家好,写给初学者的Jetpack Compose教程第4篇更新了。今天我们要介绍的是Compose当中至关重要的一个组件,State。State不光非常的重要,同时可以让我们的Compose学习之旅变得更加有趣。为什么这么说呢?因为在之前的学习过程当中,我们所实现的都是静止的界面效果,而有了State之后,则可以让界面开始动起来了。原创 2023-10-24 08:00:00 · 30804 阅读 · 13 评论 -
写给初学者的Jetpack Compose教程,Modifier
其实在上一篇文章中,有个知识点一直在反复出现,但是我却一直没有讲解,那就是Modifier。之所以没有讲,是因为这个东西太重要了,需要单独用一篇文章来讲解才行。只要你使用了Compose,那么就一定绕不开Modifier。甚至可以说,任何一个Composable函数都应该有一个Modifier参数才对,如果没有的话,那么就说明这个Composable函数写的有问题。我在刚开始学习Compose的时候,对Modifier的用法和场景一直存在疑问。主要原因在于,一般Google提供的Composable原创 2023-08-15 08:00:00 · 35089 阅读 · 19 评论 -
写给初学者的Jetpack Compose教程,基础控件和布局
大家好,写给初学者的Jetpack Compose教程又更新了。准确来说,这才是本系列的第一篇文章。因为上篇文章只是个序篇,和大家聊一聊为什么我们要学习Compose。Compose的知识体系很庞大,因此这个系列教程可能我会写很多篇。当然我并不是什么Compose高手,目前我也是个初学者。本教程实质上就是我在自我学习Compose的同时,将这些学习记录分享给大家,希望大家可以零基础跟着我一起学习。Compose是一个用于替代Android View的全新声明式UI框架。既然是UI框架,因此我们第一篇文章就来原创 2023-07-11 08:00:00 · 43828 阅读 · 23 评论 -
写给初学者的Jetpack Compose教程,为什么要学习Compose?
比如用户进入我们App的首页,首页内容的加载是需要一些时间的,通常这个时候我们会先显示一个加载框或者是占位图给用户,等首页内容加载完成之后,再把加载框隐藏掉,将正常的首页呈现给用户。最后,View真的已经太老太老了,它是随着Android 1.0系统发布的,至今已经过去了十几个年头。今天的这篇文章是这个系列的序章,我们还并没有通过一个实际可运行的例子来去学习如何编写Compose程序,但是希望这篇文章能提起大家对Compose的兴趣,我们会在本系列后续的文章当中慢慢长手Compose编程。原创 2023-06-06 08:00:00 · 43077 阅读 · 11 评论