# 定向更新
定向更新就是:当某一个Item发生变化时,
(比如输入框的内容改变了) 这个时候需要通知其他关联Item根据改变做出相应.
举个栗子:
列表中有:
Item1
Item2
Item3
Item4
当Item1发生变化时, Item2,3,4可以收到这个变化.
# 功能使用
实现此需求, 只需要Item1实现isItemInUpdateList方法, 判断需要收到更新通知的Item返回true即可.
Item1.isItemInUpdateList = { checkItem, index->
checkItem == Item2 || checkItem == Item3 || checkItem == Item4
}
checkItem依次是RV界面上显示的每一个Item, index是对应的位置索引. 返回值true表示, checkItem将会收到更新通知.
checkItem收到通知的回调方法是onItemUpdateFromInner, 外部可以通过设置item.onItemUpdateFrom属性实现监听.
源代码如下:
var onItemUpdateFrom: (fromItem: DslAdapterItem) -> Unit = {}
open fun onItemUpdateFromInner(fromItem: DslAdapterItem) {
onItemUpdateFrom(fromItem)
}
fromItem就是触发此次更新回调的Item,也就是例子中的Item1.
当依赖关系配置好之后, 只需要调用dslAdapterItem.updateItemDepend方法, 触发通知即可.