Commit 0bef7ba2 authored by yinjiacheng's avatar yinjiacheng

fix 商品列表ViewModel绑定错乱

parent 0a8e6598
......@@ -16,7 +16,6 @@ import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.CenterCrop
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.bumptech.glide.request.RequestOptions
import com.yidian.common.mvvm.BaseViewModel
import com.yidian.common.widget.CommonHintDialog
import com.yidian.shenghuoquan.commodity.BR
import com.yidian.shenghuoquan.commodity.R
......@@ -105,11 +104,8 @@ class CommodityListAdapter(private val context: Context, private val status: Com
/**
* 获取DataBinding
*/
private fun <VB : ViewDataBinding> getBinding(parent: ViewGroup, layoutResId: Int, viewModel: BaseViewModel): VB {
val binding = DataBindingUtil.inflate<VB>(LayoutInflater.from(parent.context), layoutResId, parent, false)
binding.setVariable(BR.vm, viewModel)
// binding.lifecycleOwner = context as LifecycleOwner
return binding
private fun <VB : ViewDataBinding> getBinding(parent: ViewGroup, layoutResId: Int): VB {
return DataBindingUtil.inflate(LayoutInflater.from(parent.context), layoutResId, parent, false)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
......@@ -118,28 +114,28 @@ class CommodityListAdapter(private val context: Context, private val status: Com
ID_COMMODITY_ONLINE -> {
return getBinding<CommodityItemCommodityOnlineListBinding>(
parent,
R.layout.commodity_item_commodity_online_list, CommodityListItemViewModel()
R.layout.commodity_item_commodity_online_list
).let { CommodityOnlineItemViewHolder(it, it.root) }
}
// 被驳回
ID_COMMODITY_REJECT -> {
return getBinding<CommodityItemCommodityRejectListBinding>(
parent,
R.layout.commodity_item_commodity_reject_list, CommodityListItemViewModel()
R.layout.commodity_item_commodity_reject_list
).let { CommodityRejectItemViewHolder(it, it.root) }
}
// 已下架
ID_COMMODITY_OFFLINE -> {
return getBinding<CommodityItemCommodityOfflineListBinding>(
parent,
R.layout.commodity_item_commodity_offline_list, CommodityListItemViewModel()
R.layout.commodity_item_commodity_offline_list
).let { CommodityOfflineItemViewHolder(it, it.root) }
}
// 默认审核中
else -> {
return getBinding<CommodityItemCommodityAuditListBinding>(
parent,
R.layout.commodity_item_commodity_audit_list, CommodityListItemViewModel()
R.layout.commodity_item_commodity_audit_list
).let { CommodityAuditItemViewHolder(it, it.root) }
}
}
......@@ -150,7 +146,8 @@ class CommodityListAdapter(private val context: Context, private val status: Com
val data = commodityData[position]
when (holder) {
is CommodityOnlineItemViewHolder -> {
holder.binding.data = data
holder.binding.setVariable(BR.data, data)
holder.binding.setVariable(BR.vm, CommodityListItemViewModel())
holder.binding.vm?.commodityOfflineOperationEvent?.observe(context as LifecycleOwner, {
// 弹出确认下架弹窗
CommonHintDialog(context, "确认下架优惠券?", arrayListOf("取消", "下架"), object : CommonHintDialog.OnHintOptionCallback {
......@@ -173,13 +170,14 @@ class CommodityListAdapter(private val context: Context, private val status: Com
})
}
is CommodityAuditItemViewHolder -> {
holder.binding.data = data
holder.binding.setVariable(BR.data, data)
}
is CommodityRejectItemViewHolder -> {
holder.binding.data = data
holder.binding.setVariable(BR.data, data)
}
is CommodityOfflineItemViewHolder -> {
holder.binding.data = data
holder.binding.setVariable(BR.data, data)
holder.binding.setVariable(BR.vm, CommodityListItemViewModel())
holder.binding.vm?.commodityOnlineSuccessEvent?.observe(context as LifecycleOwner, {
// 上架成功 刷新列表
ToastUtil.showToast(context, "上架成功")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment