jetpack
文章平均质量分 66
yufumatou
这个作者很懒,什么都没留下…
展开
-
基于LiveData实现事件总线
前言:提及事件总线常常使用org.greenrobot:eventbus框架,而本文通过LiveData即可轻松实现Eventbus。实现:这里只定义了1个LiveData,通过TAG作事件的区分。1、定义事件基类data class BaseEvent<T>( val tag: Int, val msg: T)2、定义事件操作类object EventBus{ val onEventLiveData = MutableLiveData<Base原创 2022-04-26 17:23:06 · 477 阅读 · 0 评论 -
DataBinding详解
一、开启DataBinding//在build.gradle文件添加android{ dataBinding{ enabled true }}二、生成DataBinding布局1、光标在布局文件的根布局-->点击Alt + Enter-->点击 “Convert to data binding layout”<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="原创 2021-02-26 11:34:08 · 21812 阅读 · 0 评论 -
ViewModel+LiveData
前言:对比MVP架构,ViewModel+LiveData实现的MVVM架构代码更加简洁,同时由于ViewModel和Retrofit、Room均可使用Coroutine,简化了获取数据的订阅操作。(ViewModel替代P,LiveData替代V)实现:1、ViewModel基类封装open class BaseViewModel : ViewModel() { val isShowLoadingLiveData = MutableLiveData<Boolean>()原创 2020-12-15 14:27:47 · 525 阅读 · 0 评论 -
Dagger组件化
前言:清楚dagger定义的层次也就实现了组件化。例如需要注入Application、Activity、LifecycleProvider参数,这些参数在基础库lib_base里定义,而由于inject()需要注入到具体的activity或fragment中,因此需要在上层业务库lib_use中定义。实现:一、注入Application1、定义数据源@Moduleclass AppModule(private val context: Application) { @Provide原创 2020-12-11 18:58:15 · 275 阅读 · 1 评论