我有一个按特定顺序垂直固定数量小部件的回收站视图。一些小部件还包含表格数据,因此我考虑在其中也使用嵌套的回收器视图。
每个小部件都会从 ViewModel 异步调用 http 并将数据绑定到环氧树脂控制器,如下所述。
由于每个小部件都会调用 requestModelBuild(),因为它们通过公共设置器(例如 priceViewData、packageData 等)从调用 requestModelBuild() 的位置接收数据。因此,在这种情况下,无论何时收到任何小部件的数据,都会发生每个小部件绑定。这似乎也很昂贵,因为我们每次绑定都需要一些分析。
因此,这里对小部件的分析调用成倍增加。请建议是否可以通过环氧树脂处理而无需手动处理。
class ProductDetailsEpoxyController(val view: View?,
private val name: String?,
private val context: Context?) :
AsyncEpoxyController() {
private val args = bundleOf("name" to name)
var priceViewData: IndicativePriceViewData? = emptyPriceViewData()
set(value) {
field = value
requestModelBuild()
}
var packageData: PackageViewData? = emptyPackageWidgetViewData()
set(value) {
field = value
requestModelBuild()
}
...
...
override fun buildModels() {
buildPriceViewData()
buildPackageViewData()
....
}
private fun buildPriceViewData(){
priceViewData?.let {
id("price")
priceViewDataModel(it)
}
}
private fun buildPackageViewData(){
packageViewData?.let {
id("package")
packageViewDataModel(it)
}
}
...
...
}