前言背景作为一个自诩的电影爱好者,经常会在半夜看电影,看完后就会顺道去豆瓣标记一下看过,再看看别人对这个电影的理解。某日深夜,看完电影后,顺手打开了豆瓣的书影音记录这个功能,起初并没有注意到这个页面的背景有什么东西,我以为只是一个普通的深色背景而已,直至一道流星突然划过屏幕!好漂亮!我这才发现原来这个页面的背景是一个星空!时不时的还会有流星飞过!这么漂亮的背景,不仿写一下真的对不起它了!这个页面静态时是这样的:我把内容拉到最后,然后录制了一个动图,可以看到流星飞过的样子:实现效果这次依然使用JetpackPackCompose作为UI框架来实现。最终实现效果如图:代码地址完整代码地址:star
JetpackCompose是用于构建原生AndroidUI的现代工具包。JetpackCompose使用更少的代码,强大的工具和直观的KotlinAPI,简化并加速了Android上的UI开发。这是AndroidDevelopers官网对它的描述。本文不是教你JetpackCompose的一些基本使用方法,而是为啥我们需要JetpackCompose的一些简洁,让我们对JetpackCompose有更深层次的了解。1.为什么我们需要一个新的UI工具?在Android中,UI工具包的历史可追溯到至少10年前。自那时以来,情况发生了很大变化,例如我们使用的设备,用户的期望,以及开发人员对他们所使
上文,我们就一个实例需求,引入了LiveData进行了实现,大家通过前后的编码实现方案对比,可以感受到LiveData的好用。不由的为jetpack组件的开发者点赞。AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(一)AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(二)AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(三)AndroidJetpack从使用到源码深耕【LiveData从实践到原理】(四)本文,我们在深入阅读LiveData源码之前,先想一下,如果是我们自己去实现这样的一个框架,会遇到哪些问题
文章目录一、Room框架使用核心要点1、build.gradle构建脚本配置说明应用插件导入依赖2、定义Entity实体类@Entity注解@PrimaryKey注解@ColumnInfo注解@Ignore注解修饰字段修饰函数3、定义Dao数据库访问对象接口@Dao注解@Insert注解@Delete注解@Update注解@Query注解4、定义RoomDatabase数据库实例类5、调用Room框架访问数据库二、完整代码示例1、build.gradle构建脚本2、Entity实体类代码3、Dao数据库访问对象接口代码4、RoomDatabase数据库实例类代码5、在Activity组件中通过
什么是JetpackCompose?JetpackCompose是Android的新声明式UI框架。长期以来,Android开发人员习惯于使用带有状态视图的xml编写UI,这些状态视图通过逐步浏览视图层次结构进行更新。使用JetpackCompose,UI是通过使用KotinQ函数以无状态方式编写的。可组合函数使用注解进行@Composable注解。可组合函数必须使用此注解进行注解,通知编译器此函数将UI添加到ViewHierarchy。虽然Composable函数可以调用其他标准函数,但Composable本身只能从其他Composable调用。@Composable注解意味着什么?如果您已
1.介绍ViewModel类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel类让数据可在发生屏幕旋转等配置更改后继续留存。Android框架可以管理界面控制器(如Activity和Fragment)(记住这个术语,后面分析时会出现)的生命周期。如果系统销毁或重新创建界面控制器,则存储在其中的任何瞬态界面相关数据都会丢失。例如,应用可能会在它的某个Activity中包含用户列表。为配置更改重新创建Activity后,新Activity必须重新提取用户列表。对于简单的数据,Activity可以使用onSaveInstanceState()方法从onCreate()中的捆绑包恢复
一、ViewBinding的使用1、ViewBinding简介视图绑定是一项功能,可让您更轻松地编写与视图交互的代码。在模块中启用视图绑定后,它会为该模块中存在的每个XML布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有ID的所有视图的直接引用。在大多数情况下,视图绑定会替换findViewById。也就是说viewbinding能够给每一个布局绑定一个布局类,这样我们就不需要使用findViewById来获取对应的视图了,可以防止一些视图为空的情况导致的错误。2、ViewBinding使用1.首先在build.gradle中添加以下代码,Kotlin语言buildFeatures{
图片来源网络在日常Android开发当中,我们肯定会遇到App的生命周期的需求。在lifecycle的扩展库当中有提供一个ProcessLifecycIeOwner帮我们实现对App的生命感知,这篇博客就来分享ProcessLifecycIeOwner的知识,希望对看文章的小伙伴有所启发。导入依赖这个类需要我们导入一个扩展库,依赖语句如下所示:implementation'androidx.lifecycle:lifecycle-extensions:2.2.0'使用代码示例1.创建一个AppObserver实现LifecycleObserver接口:importandroidx.lifecy
>**请点赞,你的点赞对我意义重大,满足下我的虚荣心。**>>🔥**Hi,我是小彭。本文已收录到[GitHub·Android-NoteBook](https://github.com/pengxurui/Android-NoteBook)中。这里有Android进阶成长知识体系,有志同道合的朋友,跟我一起成长。**##前言-生命周期
JetpackCompose入门详解前排提醒前言(Compose是什么)1.实战准备一、优势与缺点二、前四课三、标准布局组件1.Column2.Row3.Box四、xml和compose混合使用+livedata数据绑定1.xml和compose混合使用a.xml中使用composeb.compose中使用view2.livedata数据绑定五.compose结合navigation使用1.集成导航2.传递参数3.深层链接六.Compose中的ConstraintLayout七.Compose手写一个分享二维码弹窗八.Compose设置颜色的三种方式九.Compose事件与状态简略介绍十.Co