From 89fa6817222080c7c2344fe6e3ea662ceaab1386 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Tue, 28 Apr 2026 09:25:31 +0800 Subject: [PATCH] =?UTF-8?q?style(ui):=20=E4=BC=98=E5=8C=96=E9=A3=9F?= =?UTF-8?q?=E6=9D=90=E8=AF=86=E5=88=AB=E9=A1=B5=E9=9D=A2=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E5=B8=83=E5=B1=80=E5=92=8C=E4=BA=A4=E4=BA=92=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将内边距设置从统一padding改为水平和底部独立设置 - 增加卡片圆角大小从8dp到12dp提升视觉效果 - 为商品列表添加白色圆角背景提升美观性 - 调整滚动条垂直边距和顶部间距 - 将选中食材和重量显示区域包裹在圆角容器中 - 添加食材名称文本的最大行数和省略效果 - 统一按钮边距使用水平和垂直边距设置 - 动态调整RecyclerView父容器高度适配内容 - 注释掉食材搜索弹窗的默认商品名称传递 - 在食材搜索弹窗中预设测试数据便于调试 --- .../dish/match/dialog/FoodSearchDialog.kt | 16 +++++++++-- .../dish/match/ui/FoodRecognizeActivity.kt | 17 ++++++++++-- .../res/layout/activity_food_recognize.xml | 27 ++++++++++++++----- .../main/res/layout/dialog_food_search.xml | 2 +- 4 files changed, 51 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/shuwei/dish/match/dialog/FoodSearchDialog.kt b/app/src/main/java/com/shuwei/dish/match/dialog/FoodSearchDialog.kt index e70ee05..aefefb4 100644 --- a/app/src/main/java/com/shuwei/dish/match/dialog/FoodSearchDialog.kt +++ b/app/src/main/java/com/shuwei/dish/match/dialog/FoodSearchDialog.kt @@ -40,12 +40,24 @@ class FoodSearchDialog( ) : BottomSheetDialog(activity, R.style.BottomSheet) { private val binding = DialogFoodSearchBinding.inflate(LayoutInflater.from(activity)) - private val list = mutableListOf() + private val list = mutableListOf().apply { + add(CookFoodGoodsEntity(goodsId = "200001", goodsName = "土豆丝")) + add(CookFoodGoodsEntity(goodsId = "200002", goodsName = "土豆片")) + add(CookFoodGoodsEntity(goodsId = "200003", goodsName = "土豆丁")) + add(CookFoodGoodsEntity(goodsId = "200004", goodsName = "胡萝卜丝")) + add(CookFoodGoodsEntity(goodsId = "200005", goodsName = "胡萝卜片")) + add(CookFoodGoodsEntity(goodsId = "200006", goodsName = "胡萝卜丁")) + add(CookFoodGoodsEntity(goodsId = "200007", goodsName = "黄瓜丝")) + add(CookFoodGoodsEntity(goodsId = "200008", goodsName = "黄瓜片")) + add(CookFoodGoodsEntity(goodsId = "200009", goodsName = "黄瓜丁")) + add(CookFoodGoodsEntity(goodsId = "200010", goodsName = "洋葱丝")) + add(CookFoodGoodsEntity(goodsId = "200011", goodsName = "洋葱丁")) + } private val adapter = GoodsInfoSearchAdapter(list).apply { setOnItemClickListener { _, _, position -> list[position].isClicked = true notifyItemChanged(position) - Handler(Looper.getMainLooper()).postDelayed({ + binding.root.postDelayed({ onItemSelected(list[position]) dismiss() }, 300) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/FoodRecognizeActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/FoodRecognizeActivity.kt index 93c19fa..de3b4f3 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/FoodRecognizeActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/FoodRecognizeActivity.kt @@ -18,6 +18,8 @@ import com.shuwei.dish.match.utils.ext.clickWithDebounce import com.shuwei.dish.match.utils.ext.gone import com.shuwei.dish.match.utils.ext.visible import androidx.core.net.toUri +import androidx.core.view.updateLayoutParams +import com.shuwei.dish.match.utils.ext.dp /** * 食材识别结果页面 @@ -134,6 +136,7 @@ class FoodRecognizeActivity : BaseActivity() { initData() initRecyclerView() + updateRvParentLayoutHeight() initClickListeners() onBackPressedDispatcher.addCallback(this) { @@ -187,6 +190,15 @@ class FoodRecognizeActivity : BaseActivity() { updateListVisibility() } + /** + * 更新RecyclerView父布局高度 + */ + private fun updateRvParentLayoutHeight() { + binding.flListContainer.updateLayoutParams { + height = if (adapter.items.size > 2) 260.dp else 130.dp + } + } + /** * 根据列表是否有数据控制 RecyclerView 显隐 */ @@ -249,10 +261,10 @@ class FoodRecognizeActivity : BaseActivity() { private fun initClickListeners() { // 更换食材:打开食材搜索弹窗 binding.btnChangeFood.clickWithDebounce { - val currentName = list.getOrNull(selectedPosition)?.goodsName +// val currentName = list.getOrNull(selectedPosition)?.goodsName FoodSearchDialog( activity = this, - defGoodsName = currentName, +// defGoodsName = currentName, onItemSelected = { item -> updateSelectedFood(item) } ).show() } @@ -276,6 +288,7 @@ class FoodRecognizeActivity : BaseActivity() { selectedPosition = 0 } adapter.notifyDataSetChanged() + updateRvParentLayoutHeight() binding.tvSelectedFood.text = item.goodsName ?: "-" updateListVisibility() binding.recyclerView.post { updateScrollIndicator() } diff --git a/app/src/main/res/layout/activity_food_recognize.xml b/app/src/main/res/layout/activity_food_recognize.xml index 4b5f5ac..1d9b713 100644 --- a/app/src/main/res/layout/activity_food_recognize.xml +++ b/app/src/main/res/layout/activity_food_recognize.xml @@ -5,7 +5,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:padding="16dp" + android:paddingHorizontal="16dp" + android:paddingBottom="16dp" tools:background="@color/white"> @@ -15,7 +16,7 @@ android:layout_weight="1" app:cardBackgroundColor="@color/white" app:cardElevation="0dp" - app:cardCornerRadius="8dp"> + app:cardCornerRadius="12dp"> @@ -53,6 +55,7 @@ android:layout_height="match_parent" android:layout_gravity="end|top" android:layout_marginEnd="2dp" + android:layout_marginVertical="5dp" android:background="@drawable/scrollbar_track_food_recognize" android:visibility="gone" /> @@ -61,19 +64,29 @@ android:layout_width="6dp" android:layout_height="24dp" android:layout_gravity="end|top" + android:layout_marginTop="5dp" android:layout_marginEnd="1dp" android:background="@drawable/scrollbar_thumb_food_recognize" android:visibility="gone" /> + + @@ -82,7 +95,7 @@ android:id="@+id/tvWeight" android:layout_width="match_parent" android:layout_height="90dp" - android:layout_marginTop="8dp" + android:layout_marginHorizontal="15dp" android:background="@drawable/shape_white_12_corners" android:gravity="center" android:text="0.0 g" @@ -95,6 +108,7 @@ android:layout_width="match_parent" android:layout_height="90dp" android:layout_marginTop="30dp" + android:layout_marginHorizontal="15dp" android:background="@drawable/shape_green_bg" android:foreground="?android:attr/selectableItemBackground" android:gravity="center" @@ -108,8 +122,8 @@ android:id="@+id/btnCancel" android:layout_width="match_parent" android:layout_height="90dp" - android:layout_marginTop="30dp" - android:layout_marginBottom="30dp" + android:layout_marginVertical="30dp" + android:layout_marginHorizontal="15dp" android:background="@drawable/shape_white_12_corners" android:foreground="?android:attr/selectableItemBackground" android:gravity="center" @@ -118,5 +132,6 @@ android:textSize="32sp" android:textStyle="bold" /> + diff --git a/app/src/main/res/layout/dialog_food_search.xml b/app/src/main/res/layout/dialog_food_search.xml index 7cfc8e4..55abc08 100644 --- a/app/src/main/res/layout/dialog_food_search.xml +++ b/app/src/main/res/layout/dialog_food_search.xml @@ -67,7 +67,7 @@