JetpackCompose中的导航库是由Jetpack库中的Navigation组件库的基础上添加的对Compose的扩展支持,使用需要单独添加依赖:implementation"androidx.navigation:navigation-compose:$nav_version"Jetpack库中的Navigation使用起来还是比较麻烦的,首先需要在xml中进行导航图的配置,然后在代码中使用NavController.navigate(id)进行跳转到指定的id的fragment页面,个人感觉这种方式还是不够灵活,需要预先定义,假如某个fragment没有在xml中定义就无法使用Nav
JetpackCompose中的导航库是由Jetpack库中的Navigation组件库的基础上添加的对Compose的扩展支持,使用需要单独添加依赖:implementation"androidx.navigation:navigation-compose:$nav_version"Jetpack库中的Navigation使用起来还是比较麻烦的,首先需要在xml中进行导航图的配置,然后在代码中使用NavController.navigate(id)进行跳转到指定的id的fragment页面,个人感觉这种方式还是不够灵活,需要预先定义,假如某个fragment没有在xml中定义就无法使用Nav
上文,我们首先一个简单的实际代码例子入手,开始说明lifecycle被引入的背景,进而我们使用lifecycle实现了简单的需求,本文,我们一起对Lifecycle的自我实现以及源码进行深入探索。1.自我实现Lifecycle框架还是三板斧,知道了怎么去用?那么用我们自己的知识体系,不妨先猜一下这个如何做的?用自己所学所想的已有知识,试着去实现这样的一个框架。然后再去看lifecycle的源码中的逻辑,是否如我们所想。首先梳理一下,有哪些技术难点或者要点要去解决?1)如何监听fragment、activity等生命周期呢?2)如何通知观察者,相应的生命周期事件呢?猜想实现的中心思想:.应该是基
上文,我们首先一个简单的实际代码例子入手,开始说明lifecycle被引入的背景,进而我们使用lifecycle实现了简单的需求,本文,我们一起对Lifecycle的自我实现以及源码进行深入探索。1.自我实现Lifecycle框架还是三板斧,知道了怎么去用?那么用我们自己的知识体系,不妨先猜一下这个如何做的?用自己所学所想的已有知识,试着去实现这样的一个框架。然后再去看lifecycle的源码中的逻辑,是否如我们所想。首先梳理一下,有哪些技术难点或者要点要去解决?1)如何监听fragment、activity等生命周期呢?2)如何通知观察者,相应的生命周期事件呢?猜想实现的中心思想:.应该是基
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 一下用流程图的方式说明一下其是怎么工作的:1、ViewModel的构造: 2、LiveData注册监听: 3、数据改变通知刷新:LiveData中: 总结:1、ViewMode之所以能够共享数据,是因为其被放在ViewModelStore中,而ViewModelStore被放在NonConfigurationInstances(Activity中)这
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 一下用流程图的方式说明一下其是怎么工作的:1、ViewModel的构造: 2、LiveData注册监听: 3、数据改变通知刷新:LiveData中: 总结:1、ViewMode之所以能够共享数据,是因为其被放在ViewModelStore中,而ViewModelStore被放在NonConfigurationInstances(Activity中)这
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 二、用法 三、原理:1、ViewModel:ViewModelProviders.of(this).get(MyViewModel::class.java)我们通过这个方法来构造ViewModel。@NonNull@MainThreadpublicstaticViewModelProviderof(@NonNullFragmentActivityact
本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 二、用法 三、原理:1、ViewModel:ViewModelProviders.of(this).get(MyViewModel::class.java)我们通过这个方法来构造ViewModel。@NonNull@MainThreadpublicstaticViewModelProviderof(@NonNullFragmentActivityact
要看本系列其他文章,可访问此链接Jetpack架构学习|Stars-One的杂货小窝原文地址:Jetpack架构组件学习(2)——ViewModel和Livedata使用|Stars-One的杂货小窝Jetpack架构推荐使用MVVM结构,为此推出了几个MVVM的组件库供我们开发者快速接入,首先要讲的就是ViewModel个人理解:Activity为View,VM就是ViewModel,负责数据的逻辑处理,Model则是数据源ViewModel介绍ViewModel能做什么?ViewModel生命周期与Activity独立,可以优雅的保存内存中的数据(在屏幕旋转的横竖屏切换时,数据可以得到保留
要看本系列其他文章,可访问此链接Jetpack架构学习|Stars-One的杂货小窝原文地址:Jetpack架构组件学习(2)——ViewModel和Livedata使用|Stars-One的杂货小窝Jetpack架构推荐使用MVVM结构,为此推出了几个MVVM的组件库供我们开发者快速接入,首先要讲的就是ViewModel个人理解:Activity为View,VM就是ViewModel,负责数据的逻辑处理,Model则是数据源ViewModel介绍ViewModel能做什么?ViewModel生命周期与Activity独立,可以优雅的保存内存中的数据(在屏幕旋转的横竖屏切换时,数据可以得到保留