草庐IT

Jetpack学习之ViewModel、Lifecycles、LiveData

全部标签

告别XML,Android新声明式UI框架《Jetpack Compose入门到精通》最全开发指南

什么是JetpackCompose?JetpackCompose是Android的新声明式UI框架。长期以来,Android开发人员习惯于使用带有状态视图的xml编写UI,这些状态视图通过逐步浏览视图层次结构进行更新。使用JetpackCompose,UI是通过使用KotinQ函数以无状态方式编写的。可组合函数使用注解进行@Composable注解。可组合函数必须使用此注解进行注解,通知编译器此函数将UI添加到ViewHierarchy。虽然Composable函数可以调用其他标准函数,但Composable本身只能从其他Composable调用。@Composable注解意味着什么?如果您已

Jetpack之ViewModel

1.介绍ViewModel类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel类让数据可在发生屏幕旋转等配置更改后继续留存。Android框架可以管理界面控制器(如Activity和Fragment)(记住这个术语,后面分析时会出现)的生命周期。如果系统销毁或重新创建界面控制器,则存储在其中的任何瞬态界面相关数据都会丢失。例如,应用可能会在它的某个Activity中包含用户列表。为配置更改重新创建Activity后,新Activity必须重新提取用户列表。对于简单的数据,Activity可以使用onSaveInstanceState()方法从onCreate()中的捆绑包恢复

Android Jetpack架构组件(五)—ViewBinding和DataBinding

一、ViewBinding的使用1、ViewBinding简介视图绑定是一项功能,可让您更轻松地编写与视图交互的代码。在模块中启用视图绑定后,它会为该模块中存在的每个XML布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有ID的所有视图的直接引用。在大多数情况下,视图绑定会替换findViewById。也就是说viewbinding能够给每一个布局绑定一个布局类,这样我们就不需要使用findViewById来获取对应的视图了,可以防止一些视图为空的情况导致的错误。2、ViewBinding使用1.首先在build.gradle中添加以下代码,Kotlin语言buildFeatures{

Android-Jetpack-ProcessLifecycIeOwner监听App的生命周期

图片来源网络在日常Android开发当中,我们肯定会遇到App的生命周期的需求。在lifecycle的扩展库当中有提供一个ProcessLifecycIeOwner帮我们实现对App的生命感知,这篇博客就来分享ProcessLifecycIeOwner的知识,希望对看文章的小伙伴有所启发。导入依赖这个类需要我们导入一个扩展库,依赖语句如下所示:implementation'androidx.lifecycle:lifecycle-extensions:2.2.0'使用代码示例1.创建一个AppObserver实现LifecycleObserver接口:importandroidx.lifecy

Lifecycle:生命周期感知型组件的基础 —— Jetpack 系列(1)

![](https://upload-images.jianshu.io/upload_images/10107787-73a05f1a2b48e740.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)>**请点赞,你的点赞对我意义重大,满足下我的虚荣心。**>>🔥**Hi,我是小彭。本文已收录到[GitHub·Android-NoteBook](https://github.com/pengxurui/Android-NoteBook)中。这里有Android进阶成长知识体系,有志同道合的朋友,跟我一起成长。**##前言-生命周期

Jetpack Compose入门详解(实时更新)

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

Android-Jetpack-Navigation组件使用

图片来源网络可能有部分Android开发的小伙伴见过单Activity多Fragment的App,使用起来非常的流畅或者说非常的丝滑。自己想要尝试这种开发模式的时候,又会发现Fragment的管理会比较麻烦。现在不用怕了,AndroidSDK为了我们提供了Navigation来实现这种开发模式。希望这篇文章对小伙伴们有所启发。Navigation的优势先来说说使用Navigation的优势:可以可视化页面的导航,可以帮我们快速理清页面之间的关系;通过destination和action完成页面之间的导航;方便我们添加页面的切换动画;页面之间类型安全的参数传递;通过NavigationUI类,对

LiveData 面试题库、解答、源码分析

引子--LiveData是能感知生命周期的,可观察的,粘性的,数据持有者。LiveData用于以“数据驱动”方式更新界面。换一种描述方式:LiveData缓存了最新的数据并将其传递给正活跃的组件。这一篇就LiveData的面试题做一个归总、分析、解答。1\.LiveData如何感知生命周期的变化?-------------------------先总结,再分析:>*Jetpack引入了Lifecycle,让任何组件都能方便地感知界面生命周期的变化。只需实现LifecycleEventObserver接口并注册给生命周期对象即可。>*LiveData的数据观察者在内部被包装成另一个对象(实现了L

Kettle 学习之问题处理(一):连接数据库报错

Kettle学习之问题处理(一):连接数据库报错不废话,直接讲解!报错信息光是看到这么多信息头就痛了,不过还是要给出来的,便于确实地分析问题。错误连接数据库[127.0.0.1]:org.pentaho.di.core.exception.KettleDatabaseException:ErroroccurredwhiletryingtoconnecttothedatabaseErrorconnectingtodatabase:(usingclassnet.sourceforge.jtds.jdbc.Driver)NetworkerrorIOException:Connectionrefuse

Android Jetpack系列之MVVM使用及封装

Android开发架构-----------如果开发过程中大家各自为战,没有统一规范,久而久之,项目代码会变得混乱且后续难以维护。当使用统一的架构模式后,有很多的好处,如:*统一开发规范,使得代码整洁、规范,后续易于维护及扩展*提高开发效率(尤其在团队人员较多时)*模块单一职责,使得模块专注自己内部(面向对象),**模块间解耦**总之,开发架构是前人总结出来的一套行之有效的开发模式,目的是达到**高内聚,低耦合**的效果,使得项目代码更健壮、易维护。Android中常见的架构模式有`MVC(Model-View-Controller)`、`MVP(Model-View-Presenter)`、