From 7a75e943db930c9aa9d8a7b979493bf4ae7e1cc0 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Mon, 27 Apr 2026 14:32:03 +0800 Subject: [PATCH] =?UTF-8?q?fix(ui):=20=E4=BC=98=E5=8C=96=E8=8F=9C=E5=93=81?= =?UTF-8?q?=E5=88=B6=E4=BD=9C=E7=95=8C=E9=9D=A2=E5=B8=83=E5=B1=80=E5=92=8C?= =?UTF-8?q?=E7=A7=B0=E9=87=8D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整 activity_prepare_cook.xml 中的边距和布局参数 - 更新称重显示文本为“称重:0g”并调整样式 - 在 BaseActivity 中将 loading 显示和隐藏操作移到主线程执行 - 为称重按钮添加防抖点击监听器和清零功能 - 在食物识别过程中添加加载提示和调试日志 - 修复食物识别流程中的加载框显示和隐藏逻辑 - 添加识别结果页面加载功能和取消判断 --- .../shuwei/dish/match/base/BaseActivity.kt | 16 ++++++---- .../dish/match/ui/PrepareCookActivity.kt | 31 +++++++++++++++++-- .../main/res/layout/activity_prepare_cook.xml | 16 +++++----- 3 files changed, 47 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt b/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt index 3baccbb..3db0ee7 100644 --- a/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt @@ -162,18 +162,22 @@ open class BaseActivity : AppCompatActivity() { } fun showLoading(msg: String = "加载中……") { - Loading.show( - context = this, - message = msg - ) + handler.post { + Loading.show( + context = this, + message = msg + ) + } } fun dismissLoading() { - Loading.dismiss() + handler.post { + Loading.dismiss() + } } fun delayDismissLoading() { - window.decorView.postDelayed({ + handler.postDelayed({ Loading.dismiss() }, 500) } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt index 332c276..790ab79 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt @@ -122,7 +122,11 @@ class PrepareCookActivity : BaseActivity() { } private fun addViewClickListener() { - binding.tvShowWeight.clickWithDebounce { WeightUtil.tareTwo(AddressUtil.ONE) } + binding.tvShowWeight.setOnClickListener { + showLoading("正在清零……") + WeightUtil.tareTwo(AddressUtil.ONE) + delayDismissLoading() + } WeightUtil.addWeightListener( weightKey = TAG, getWeight = { address, state, weight -> @@ -208,8 +212,10 @@ class PrepareCookActivity : BaseActivity() { return } if (!pageVisible || manualCancelFlag || isTakingPhoto.get() || showRecognizePage || abs(lastWeight - weight) <= WEIGHT_CHANGE_VALUE) { + Log.d(TAG, "recognizeFood, lastWeight:$lastWeight, weight:$weight, pageVisible:$pageVisible, manualCancelFlag:$manualCancelFlag, isTakingPhoto:${isTakingPhoto.get()}") return } + showLoading("识别中……") isTakingPhoto.set(true) cameraUtils.takePhoto( succCallback = cameraSuccessCallback, @@ -471,12 +477,14 @@ class PrepareCookActivity : BaseActivity() { withContext(Dispatchers.IO) { val bitmap = ImageUtil.uriToBitmap(this@PrepareCookActivity, uri) if (bitmap == null) { + dismissLoading() Log.d(TAG, "takePhoto bitmap is null") isTakingPhoto.set(false) return@withContext } val foodScoreList = FoodModule.getFoodScoreList(bitmap) if (foodScoreList.isEmpty()) { + dismissLoading() Log.d(TAG, "takePhoto foodScoreList is empty") isTakingPhoto.set(false) return@withContext @@ -495,6 +503,7 @@ class PrepareCookActivity : BaseActivity() { Log.d(TAG, "takePhoto failure") isTakingPhoto.set(false) toast(errMsg) + dismissLoading() } /** @@ -502,10 +511,11 @@ class PrepareCookActivity : BaseActivity() { * @param list 食材列表 */ private fun queryFood(list: List) { - Log.d(TAG, "takePhoto queryFood, list=${list.toString()}") + Log.d(TAG, "takePhoto queryFood, list=$list") //调用接口成功,返回食材列表设置isTakingPhoto.set(false),暂时写死数据 val foodList = mutableListOf() list.forEachIndexed { index, food -> + Log.d(TAG, "takePhoto queryFood, index=${index},food=$food") var foodName = "" var foodId = "" food.name.split("WP").let { @@ -527,6 +537,23 @@ class PrepareCookActivity : BaseActivity() { } ) } + Log.d(TAG, "takePhoto queryFood, 数据添加完成") + handler.postDelayed({ + dismissLoading() + loadRecognizeResultPage(foodList) + }, 1000) + } + + /** + * 加载识别结果页面 + */ + private fun loadRecognizeResultPage(foodList: List) { + if (currentWeight < WEIGHT_RECOGNIZE_VALUE) { + Log.d(TAG, "takePhoto queryFood, 已取消") + toast("已取消") + isTakingPhoto.set(false) + return + } lastWeight = currentWeight FoodRecognizeActivity.start( activity = this, diff --git a/app/src/main/res/layout/activity_prepare_cook.xml b/app/src/main/res/layout/activity_prepare_cook.xml index adf6cf8..b3b19fc 100644 --- a/app/src/main/res/layout/activity_prepare_cook.xml +++ b/app/src/main/res/layout/activity_prepare_cook.xml @@ -60,16 +60,14 @@