From 37289d43f3ae0a6ab65b372891149844f5aab69c Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Tue, 26 May 2026 21:34:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(ui):=20=E5=B0=86=E8=A1=A8=E5=8D=95=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E4=BB=8E=20FlexboxLayoutManager=20=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=20GridLayoutManager=20=E4=B8=A4=E5=88=97=EF=BC=8C=E6=BA=AF?= =?UTF-8?q?=E6=BA=90=E7=A0=81=E6=94=B9=E4=B8=BA=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sw/inbound/adapter/FormFieldAdapter.kt | 10 ---------- .../sw/inbound/dialog/InboundGoodsStoreDialog.kt | 14 ++++---------- app/src/main/res/layout/list_item_form_field.xml | 5 +++-- 3 files changed, 7 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/sw/inbound/adapter/FormFieldAdapter.kt b/app/src/main/java/com/sw/inbound/adapter/FormFieldAdapter.kt index cc591d8..563ced3 100644 --- a/app/src/main/java/com/sw/inbound/adapter/FormFieldAdapter.kt +++ b/app/src/main/java/com/sw/inbound/adapter/FormFieldAdapter.kt @@ -12,7 +12,6 @@ import android.view.ViewGroup import androidx.core.graphics.toColorInt import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.viewholder.QuickViewHolder -import com.google.android.flexbox.FlexboxLayoutManager import com.sw.inbound.R import com.sw.inbound.databinding.ListItemFormFieldBinding import com.sw.inbound.dialog.DropdownPopup @@ -46,8 +45,6 @@ class FormFieldAdapter( override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { val binding = ListItemFormFieldBinding.inflate(LayoutInflater.from(context), parent, false) - // 设置每个 item 宽度占 FlexboxLayout 的 50%,实现两列布局 - (binding.root.layoutParams as? FlexboxLayoutManager.LayoutParams)?.flexBasisPercent = 0.5f return VH(binding) } @@ -179,11 +176,4 @@ class FormFieldAdapter( } } - /** RecyclerView 回收 ViewHolder 时移除 TextWatcher,防止复用错误 */ - override fun onViewRecycled(holder: VH) { - super.onViewRecycled(holder) - val watcher = holder.binding.etInput.tag as? TextWatcher - watcher?.let { holder.binding.etInput.removeTextChangedListener(it) } - holder.binding.etInput.tag = null - } } diff --git a/app/src/main/java/com/sw/inbound/dialog/InboundGoodsStoreDialog.kt b/app/src/main/java/com/sw/inbound/dialog/InboundGoodsStoreDialog.kt index 6266e7c..08f1144 100644 --- a/app/src/main/java/com/sw/inbound/dialog/InboundGoodsStoreDialog.kt +++ b/app/src/main/java/com/sw/inbound/dialog/InboundGoodsStoreDialog.kt @@ -9,9 +9,7 @@ import android.view.LayoutInflater import android.view.View import androidx.camera.view.PreviewView import androidx.core.graphics.toColorInt -import com.google.android.flexbox.FlexDirection -import com.google.android.flexbox.FlexWrap -import com.google.android.flexbox.FlexboxLayoutManager +import androidx.recyclerview.widget.GridLayoutManager import com.sw.inbound.GlobalData import com.sw.inbound.activity.StoreActivity import com.sw.inbound.adapter.FormFieldAdapter @@ -94,7 +92,7 @@ class InboundGoodsStoreDialog( DictType(id = id, value = zone.zoneName) } return mutableListOf( - FormField("溯源码", FieldType.TEXT, apiKey = "traceCode", value = goods.traceCode), + FormField("溯源码", FieldType.TEXT, apiKey = "traceCode", value = goods.traceCode, required = true, hint = "请录入溯源码"), FormField("来源类型", FieldType.DROPDOWN, apiKey = "", options = listOf( DictType("0", "手动录入"), DictType("1", "系统识别") )), @@ -127,7 +125,7 @@ class InboundGoodsStoreDialog( DictType(id = id, value = zone.zoneName) } return mutableListOf( - FormField("溯源码", FieldType.TEXT, apiKey = "traceCode", value = goods.traceCode), + FormField("溯源码", FieldType.TEXT, apiKey = "traceCode", value = goods.traceCode, required = true, hint = "请录入溯源码"), FormField("食材名称", FieldType.FIXED, apiKey = "ingredientName", required = true, value = goods.materName), FormField("净材类型", FieldType.DROPDOWN, apiKey = "cleanType", required = cleanTypeOptions.isNotEmpty(), hint = "请选择净材类型", options = cleanTypeOptions), @@ -143,11 +141,7 @@ class InboundGoodsStoreDialog( } private fun setupRecyclerView() { - val flexboxLM = FlexboxLayoutManager(context).apply { - flexDirection = FlexDirection.ROW - flexWrap = FlexWrap.WRAP - } - binding.rvFormFields.layoutManager = flexboxLM + binding.rvFormFields.layoutManager = GridLayoutManager(context, 2) binding.rvFormFields.adapter = FormFieldAdapter(storeActivity ?: context, fields) } diff --git a/app/src/main/res/layout/list_item_form_field.xml b/app/src/main/res/layout/list_item_form_field.xml index b06b912..5921755 100644 --- a/app/src/main/res/layout/list_item_form_field.xml +++ b/app/src/main/res/layout/list_item_form_field.xml @@ -4,7 +4,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:paddingHorizontal="20dp" android:paddingVertical="10dp"> @@ -12,6 +11,7 @@ android:id="@+id/tvLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginHorizontal="12dp" android:layout_marginBottom="6dp" android:textColor="#FF141428" android:textSize="20sp" @@ -21,7 +21,8 @@ + android:layout_height="60dp" + android:layout_marginHorizontal="12dp">