From e8933fa5780d882c697e5cd92b77f84eadd29df9 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Tue, 28 Apr 2026 17:46:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(activity):=20=E4=BF=AE=E5=A4=8D=E9=87=87?= =?UTF-8?q?=E6=A0=B7=E4=B8=8E=E8=8F=9C=E5=93=81=E5=88=97=E8=A1=A8=E9=A1=B5?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=9C=BA=E6=99=AF=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../shuwei/dish/match/ui/SamplingListActivity.kt | 13 ++++++++++++- .../dish/match/ui/fragment/DishListFragment.kt | 9 ++++++++- app/src/main/res/layout/activity_submit_food.xml | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt index f53e80b..9aacca2 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt @@ -59,6 +59,7 @@ class SamplingListActivity : BaseActivity() { lifecycleScope.launch { repeatOnLifecycle(Lifecycle.State.STARTED) { appViewModel.cookFoodListState.collect { cookFoodEntities -> + if (binding.dishRadioGroup.checkedRadioButtonId != R.id.rbSamplingCooking) return@collect delayDismissLoading() if (cookFoodEntities.isNullOrEmpty()) { loadEmptyView() @@ -89,8 +90,18 @@ class SamplingListActivity : BaseActivity() { netViewModel.samplingListState.collect { state -> when (state) { is UiState.Loading -> showLoading() - is UiState.Success -> loadDishList(state.data) + is UiState.Success -> { + if (binding.dishRadioGroup.checkedRadioButtonId != R.id.rbSamplingFinished) { + delayDismissLoading() + return@collect + } + loadDishList(state.data) + } is UiState.Error -> { + if (binding.dishRadioGroup.checkedRadioButtonId != R.id.rbSamplingFinished) { + delayDismissLoading() + return@collect + } binding.refreshLayout.setEnableRefresh(true) toast(state.msg) finishRefresh() diff --git a/app/src/main/java/com/shuwei/dish/match/ui/fragment/DishListFragment.kt b/app/src/main/java/com/shuwei/dish/match/ui/fragment/DishListFragment.kt index 0e4bfaf..ed48d26 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/fragment/DishListFragment.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/fragment/DishListFragment.kt @@ -146,8 +146,15 @@ class DishListFragment : BaseFragment() { if (isAdded.not()) return@collect toast(networkState.msg) finishRefresh() - if (pageNo == 1) loadEmptyView() activity.delayDismissLoading() + if (pageNo == 1) { + // 网络异常或接口不通时,降级使用本地数据;本地也为空才显示空视图 + if (localList.isNullOrEmpty()) { + loadEmptyView() + } else { + loadAndMergeDishList(null, localList) + } + } } is UiState.Idle -> {} } diff --git a/app/src/main/res/layout/activity_submit_food.xml b/app/src/main/res/layout/activity_submit_food.xml index cdde97f..41ed38e 100644 --- a/app/src/main/res/layout/activity_submit_food.xml +++ b/app/src/main/res/layout/activity_submit_food.xml @@ -55,7 +55,7 @@ android:layout_height="wrap_content">