# 常见问题QA
# 1. 如何让每次操作都是同步执行的?
只需要配置属性defaultFilterParams
:
dslAdapter.defaultFilterParams = FilterParams(async = false, just = true)
FilterParams
源码定义如下:
data class FilterParams(
/**
* 触发更新的来源, 定向更新其子项.
* */
val formDslAdapterItem: DslAdapterItem? = null,
/**
* 异步计算Diff
* */
var async: Boolean = true,
/**
* 立即执行, 不检查抖动
* */
var just: Boolean = false,
/**
* 只过滤列表数据, 不通知界面操作, 开启此属性.[async=true][just=true]
* */
var justFilter: Boolean = false,
/**
* 前提, Diff 之后, 2个数据列表的大小要一致.
*
* 当依赖的[DslAdapterItem] [isItemInUpdateList]列表为空时, 是否要调用[dispatchUpdatesTo]更新界面
* */
var updateDependItemWithEmpty: Boolean = true
)
# 2. 如何默认选中指定的Item
?
首先开启选择模式:
dslAdapter.itemSelectorHelper.selectorModel = MODEL_SINGLE
进行选项操作:
dslAdapter.onDispatchUpdatesAfterOnce = {
it.itemSelectorHelper.selector(0)//请在这个回调方法中, 执行选择操作.
}
因为
dslAdapter
是异步操作
数据源, 所有需要在异步操作结束之后
才能操作界面数据.
onDispatchUpdatesAfterOnce
触发一次之后, 就会被置空
, 所以不用担心操作会被污染.