首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你应该知道的kotlin实用技巧

由于新的类继承了具体的 ArrayList 类而不是实现 MutableList 接口,因此它与 ArrayList 的实现高度耦合。...如果只需要覆盖 remove() 函数来保持对已删除项目的引用,并将 MutableList 的其余空实现委托给其他对象,那该有多好啊。...通过桥接到内部 ArrayList 对象方法的方式,ListWithTrash 仍然支持 MutableList 接口中的所有函数。与此同时,现在您可以添加自己的行为了。...MVVM模式与ViewModel 我们也常常用LiveData来标识网络请求状态 我们需要定义请求开始,请求成功,请求失败,三个LiveData 这其实也是很冗余重复的代码,因此我们可以进行一定的封装...,封装一个带状态的LiveData 定义如下: typealias StatefulLiveData = LiveData> typealias StatefulMutableLiveData

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    你应该知道的kotlin实用技巧

    由于新的类继承了具体的 ArrayList 类而不是实现 MutableList 接口,因此它与 ArrayList 的实现高度耦合。...如果只需要覆盖 remove() 函数来保持对已删除项目的引用,并将 MutableList 的其余空实现委托给其他对象,那该有多好啊。...通过桥接到内部 ArrayList 对象方法的方式,ListWithTrash 仍然支持 MutableList 接口中的所有函数。与此同时,现在您可以添加自己的行为了。...by bindToPreferenceFieldNullable() } 带状态的LiveData 目前我们在开发的过程中越来越多的使用MVVM模式与ViewModel 我们也常常用LiveData来标识网络请求状态...我们需要定义请求开始,请求成功,请求失败,三个LiveData 这其实也是很冗余重复的代码,因此我们可以进行一定的封装,封装一个带状态的LiveData 定义如下: typealias StatefulLiveData

    1.4K00

    引入Jetpack架构后,你的App会发生哪些变化?

    onDestroy() } 首先定义一个观察者接口,包含Activity/Fragment主要生命周期方法 第二步: class BaseActivity{ val observers = mutableList...根据LiveData的特性决定它非常适合去做数据驱动UI,下面举个例子简单描述下: # 需求:改变textView内容以及对应的数据,用LiveData实现方式如下 val liveData = MutableLiveData...() liveData?....LiveData + Lifecycle 实现 1 + 1 > 2 LiveData在Lifecycle的加持下可以实现只在可见状态接收通知,说的通俗一点Activity执行了onStop()后内部的LiveData...既然是状态托管框架那ViewModel的第一要务 就要时时刻刻保证最新状态分发到视图层,这让我不禁想到了LiveData,数据的承载以及分发交给Livedata,而ViewModel专注于托管LiveData

    1K31

    引入Jetpack架构后,你的App会发生哪些变化?

    LiveData并不是只运用观察者模式 2.1 观察者模式的优点有哪些? 2.2 LiveData基于观察者模式又做了哪些扩展?...onDestroy() } 首先定义一个观察者接口,包含Activity/Fragment主要生命周期方法 第二步: class BaseActivity{ val observers = mutableList...根据LiveData的特性决定它非常适合去做数据驱动UI,下面举个例子简单描述下: # 需求:改变textView内容以及对应的数据,用LiveData实现方式如下 val liveData = MutableLiveData...() liveData?....既然是状态托管框架那ViewModel的第一要务 就要时时刻刻保证最新状态分发到视图层,这让我不禁想到了LiveData,数据的承载以及分发交给Livedata,而ViewModel专注于托管LiveData

    84300

    使用 Architecture Component 实现 MVVM 的正确姿势

    inc() } } 复制代码 class MvvmActivity : AppCompatActivity() { private val viewModel by viewModels...LiveData LiveData 也是官方提供的,用于提供可被监听的数据,且具有生命周期感知能力的组件。...粘性消息特性以及适用场景 LiveData 默认是支持粘性消息的,也就是在 observe() 的时候可以拿到 observe() 之前赋给 LiveData 的值。...,如果要使用 LiveData 来实现非粘性消息(observe() 的时候不接收之前赋给 LiveData 的值),有各种 workaround 的方式,具体可以移步至我的另一篇文章:LiveData...---- 相关文章: LiveData 的正确使用姿势以及反模式 LiveData 非粘性消息的探索和尝试 自定义生命周期以及实现生命周期感知能力

    78920
    领券