# 定向更新
定向更新
就是:当某一个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
方法, 触发通知
即可.