【发布时间】:2020-04-14 14:02:38
【问题描述】:
我有一个以特定顺序垂直固定数量小部件的回收器视图。一些小部件还包含表格数据,因此我考虑在其中也使用嵌套的回收器视图。
每个小部件都会从 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)
}
}
...
...
}
【问题讨论】:
标签: android epoxy epoxy-modelview