diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/holder/IntExpArriveViewHolder.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/IntExpArriveViewHolder.kt index 4601769..6c2750a 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/holder/IntExpArriveViewHolder.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/IntExpArriveViewHolder.kt @@ -5,8 +5,8 @@ import com.lukouguoji.gjc.R import com.lukouguoji.gjc.databinding.ItemIntExpArriveBinding import com.lukouguoji.module_base.adapter.setCommonAdapter import com.lukouguoji.module_base.base.BaseViewHolder -import com.lukouguoji.module_base.common.ConstantEvent -import com.lukouguoji.module_base.impl.FlowBus +import com.lukouguoji.module_base.common.ConstantEvent +import com.lukouguoji.module_base.impl.FlowBus import com.lukouguoji.module_base.bean.GjcMaWb import com.lukouguoji.module_base.ktx.refresh @@ -24,20 +24,17 @@ class IntExpArriveViewHolder(view: View) : // 添加图标点击事件 - 切换选择状态 binding.ivIcon.setOnClickListener { - // 反转checked状态 bean.checked.set(!bean.checked.get()) FlowBus.with(ConstantEvent.EVENT_CHECK_CHANGED).tryEmit("check_changed") - - // 立即更新UI(图片自动切换) binding.executePendingBindings() } - // ========== 展开按钮点击事件 ========== + // 展开按钮点击事件 binding.ivShow.setOnClickListener { bean.showMore.set(!bean.showMore.get()) } - // ========== 初始化子列表 RecyclerView ========== + // 初始化子列表 RecyclerView setCommonAdapter( binding.rvSub, IntExpArriveSubViewHolder::class.java, @@ -45,6 +42,22 @@ class IntExpArriveViewHolder(view: View) : ) // 刷新子列表数据 - binding.rvSub.refresh(bean.haWbList ?: emptyList()) + val subList = bean.haWbList ?: emptyList() + binding.rvSub.refresh(subList) + updateSubListVisibility(subList.isNotEmpty()) + } + + private fun updateSubListVisibility(hasData: Boolean) { + if (hasData) { + binding.llHeader.visibility = View.VISIBLE + binding.dividerHeader.visibility = View.VISIBLE + binding.rvSub.visibility = View.VISIBLE + binding.tvEmpty.visibility = View.GONE + } else { + binding.llHeader.visibility = View.GONE + binding.dividerHeader.visibility = View.GONE + binding.rvSub.visibility = View.GONE + binding.tvEmpty.visibility = View.VISIBLE + } } } diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/holder/IntExpTallyViewHolder.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/IntExpTallyViewHolder.kt index b4e2368..2a818a9 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/holder/IntExpTallyViewHolder.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/IntExpTallyViewHolder.kt @@ -24,20 +24,17 @@ class IntExpTallyViewHolder(view: View) : // 图标点击切换选择状态(主单和分单独立,互不干扰) binding.ivIcon.setOnClickListener { - // 只切换主单自己的选择状态,不同步到分单 bean.checked.set(!bean.checked.get()) FlowBus.with(ConstantEvent.EVENT_CHECK_CHANGED).tryEmit("check_changed") - - // 刷新UI binding.executePendingBindings() } - // ========== 新增:展开按钮点击事件 ========== + // 展开按钮点击事件 binding.ivShow.setOnClickListener { bean.showMore.set(!bean.showMore.get()) } - // ========== 新增:初始化子列表 RecyclerView ========== + // 初始化子列表 RecyclerView setCommonAdapter( binding.rvSub, IntExpTallySubViewHolder::class.java, @@ -45,6 +42,22 @@ class IntExpTallyViewHolder(view: View) : ) // 刷新子列表数据 - binding.rvSub.refresh(bean.haWbList ?: emptyList()) + val subList = bean.haWbList ?: emptyList() + binding.rvSub.refresh(subList) + updateSubListVisibility(subList.isNotEmpty()) + } + + private fun updateSubListVisibility(hasData: Boolean) { + if (hasData) { + binding.llHeader.visibility = View.VISIBLE + binding.dividerHeader.visibility = View.VISIBLE + binding.rvSub.visibility = View.VISIBLE + binding.tvEmpty.visibility = View.GONE + } else { + binding.llHeader.visibility = View.GONE + binding.dividerHeader.visibility = View.GONE + binding.rvSub.visibility = View.GONE + binding.tvEmpty.visibility = View.VISIBLE + } } } diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpArriveViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpArriveViewModel.kt index b60990c..08914b5 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpArriveViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpArriveViewModel.kt @@ -95,12 +95,8 @@ class IntExpArriveViewModel : BasePageViewModel() { val shouldExpand = !isAllExpanded.value!! isAllExpanded.value = shouldExpand - // 更新所有列表项的 showMore 状态 list.forEach { bean -> - // 只有当有子列表时才设置展开状态 - if (!bean.haWbList.isNullOrEmpty()) { - bean.showMore.set(shouldExpand) - } + bean.showMore.set(shouldExpand) } // 刷新列表UI diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpTallyViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpTallyViewModel.kt index 4496c28..689d44f 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpTallyViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpTallyViewModel.kt @@ -96,12 +96,8 @@ class IntExpTallyViewModel : BasePageViewModel() { val shouldExpand = !isAllExpanded.value!! isAllExpanded.value = shouldExpand - // 更新所有列表项的 showMore 状态 list.forEach { bean -> - // 只有当有子列表时才设置展开状态 - if (!bean.haWbList.isNullOrEmpty()) { - bean.showMore.set(shouldExpand) - } + bean.showMore.set(shouldExpand) } // 刷新列表UI diff --git a/module_gjc/src/main/res/layout/item_int_exp_arrive.xml b/module_gjc/src/main/res/layout/item_int_exp_arrive.xml index 4199055..ba11b74 100644 --- a/module_gjc/src/main/res/layout/item_int_exp_arrive.xml +++ b/module_gjc/src/main/res/layout/item_int_exp_arrive.xml @@ -336,7 +336,6 @@ + + + diff --git a/module_gjc/src/main/res/layout/item_int_exp_tally.xml b/module_gjc/src/main/res/layout/item_int_exp_tally.xml index 1503d5f..0769fc4 100644 --- a/module_gjc/src/main/res/layout/item_int_exp_tally.xml +++ b/module_gjc/src/main/res/layout/item_int_exp_tally.xml @@ -76,7 +76,6 @@ + + - + @@ -100,6 +110,7 @@ diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntArrAirManifestViewHolder.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntArrAirManifestViewHolder.kt index 9cbb6ea..2373de1 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntArrAirManifestViewHolder.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntArrAirManifestViewHolder.kt @@ -5,8 +5,8 @@ import com.lukouguoji.gjj.R import com.lukouguoji.gjj.databinding.ItemIntArrAirManifestBinding import com.lukouguoji.module_base.adapter.setCommonAdapter import com.lukouguoji.module_base.base.BaseViewHolder -import com.lukouguoji.module_base.common.ConstantEvent -import com.lukouguoji.module_base.impl.FlowBus +import com.lukouguoji.module_base.common.ConstantEvent +import com.lukouguoji.module_base.impl.FlowBus import com.lukouguoji.module_base.bean.GjjAirManifest import com.lukouguoji.module_base.ktx.refresh @@ -47,7 +47,23 @@ class IntArrAirManifestViewHolder(view: View) : R.layout.item_int_arr_air_manifest_sub ) + val subList = bean.haWbList ?: emptyList() binding.rvSub.tag = bean - binding.rvSub.refresh(bean.haWbList ?: emptyList()) + binding.rvSub.refresh(subList) + updateSubListVisibility(subList.isNotEmpty()) + } + + private fun updateSubListVisibility(hasData: Boolean) { + if (hasData) { + binding.llHeader.visibility = View.VISIBLE + binding.dividerHeader.visibility = View.VISIBLE + binding.rvSub.visibility = View.VISIBLE + binding.tvEmpty.visibility = View.GONE + } else { + binding.llHeader.visibility = View.GONE + binding.dividerHeader.visibility = View.GONE + binding.rvSub.visibility = View.GONE + binding.tvEmpty.visibility = View.VISIBLE + } } } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpStorageUseViewHolder.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpStorageUseViewHolder.kt index fb7f5bd..68c8fb6 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpStorageUseViewHolder.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpStorageUseViewHolder.kt @@ -45,5 +45,20 @@ class IntImpStorageUseViewHolder(view: View) : val storageUseList = bean.storageUseList ?: emptyList() binding.rvSub.tag = bean binding.rvSub.refresh(storageUseList) + updateSubListVisibility(storageUseList.isNotEmpty()) + } + + private fun updateSubListVisibility(hasData: Boolean) { + if (hasData) { + binding.llHeader.visibility = View.VISIBLE + binding.dividerHeader.visibility = View.VISIBLE + binding.rvSub.visibility = View.VISIBLE + binding.tvEmpty.visibility = View.GONE + } else { + binding.llHeader.visibility = View.GONE + binding.dividerHeader.visibility = View.GONE + binding.rvSub.visibility = View.GONE + binding.tvEmpty.visibility = View.VISIBLE + } } } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrAirManifestViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrAirManifestViewModel.kt index 636f39c..cb028f4 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrAirManifestViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrAirManifestViewModel.kt @@ -41,15 +41,15 @@ class IntArrAirManifestViewModel : BasePageViewModel() { // ========== 全选状态 ========== val isAllChecked = MutableLiveData(false) - - fun onItemCheckChanged() { - updateCheckAllStatus() - } - - fun updateCheckAllStatus() { - val list = pageModel.rv?.commonAdapter()?.items as? List ?: return - isAllChecked.value = list.isNotEmpty() && list.all { it.checked.get() } - } + + fun onItemCheckChanged() { + updateCheckAllStatus() + } + + fun updateCheckAllStatus() { + val list = pageModel.rv?.commonAdapter()?.items as? List ?: return + isAllChecked.value = list.isNotEmpty() && list.all { it.checked.get() } + } // ========== 全部展开状态 ========== val isAllExpanded = MutableLiveData(false) @@ -90,9 +90,7 @@ class IntArrAirManifestViewModel : BasePageViewModel() { isAllExpanded.value = shouldExpand val list = pageModel.rv?.commonAdapter()?.items as? List ?: return list.forEach { bean -> - if (!bean.haWbList.isNullOrEmpty()) { - bean.showMore.set(shouldExpand) - } + bean.showMore.set(shouldExpand) } pageModel.rv?.commonAdapter()?.notifyDataSetChanged() } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpStorageUseViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpStorageUseViewModel.kt index 87855c6..8f56b77 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpStorageUseViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpStorageUseViewModel.kt @@ -103,9 +103,7 @@ class IntImpStorageUseViewModel : BasePageViewModel() { isAllExpanded.value = shouldExpand list.forEach { bean -> - if (!bean.storageUseList.isNullOrEmpty()) { - bean.showMore.set(shouldExpand) - } + bean.showMore.set(shouldExpand) } pageModel.rv?.commonAdapter()?.notifyDataSetChanged() diff --git a/module_gjj/src/main/res/layout/item_int_arr_air_manifest.xml b/module_gjj/src/main/res/layout/item_int_arr_air_manifest.xml index 7124cc4..f804299 100644 --- a/module_gjj/src/main/res/layout/item_int_arr_air_manifest.xml +++ b/module_gjj/src/main/res/layout/item_int_arr_air_manifest.xml @@ -314,7 +314,6 @@ + + + diff --git a/module_gjj/src/main/res/layout/item_int_imp_storage_use.xml b/module_gjj/src/main/res/layout/item_int_imp_storage_use.xml index 9a97bee..12924ef 100644 --- a/module_gjj/src/main/res/layout/item_int_imp_storage_use.xml +++ b/module_gjj/src/main/res/layout/item_int_imp_storage_use.xml @@ -305,7 +305,6 @@ + + +