diff --git a/module_base/src/main/java/com/lukouguoji/module_base/adapter/ViewAdapter.kt b/module_base/src/main/java/com/lukouguoji/module_base/adapter/ViewAdapter.kt index cf618a3..a5a1415 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/adapter/ViewAdapter.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/adapter/ViewAdapter.kt @@ -2,6 +2,7 @@ package com.lukouguoji.module_base.adapter import android.view.View import android.widget.EditText +import android.widget.LinearLayout import androidx.databinding.BindingAdapter import com.lukouguoji.module_base.interfaces.IOnFocusChangeListener @@ -27,6 +28,18 @@ fun visible(view: View, visible: Any?) { } } +/** + * 动态设置 LinearLayout 子 View 的 layout_weight(如按状态切换列宽) + */ +@BindingAdapter("layoutWeight") +fun setLayoutWeight(view: View, weight: Float) { + val lp = view.layoutParams as? LinearLayout.LayoutParams ?: return + if (lp.weight != weight) { + lp.weight = weight + view.layoutParams = lp + } +} + @BindingAdapter("setFocusChangedListener") fun setOnFocusChangeListener(et: EditText, listener: IOnFocusChangeListener) { et.onFocusChangeListener = View.OnFocusChangeListener { v, hasFocus -> diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/AssembleWaybillColumns.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/AssembleWaybillColumns.kt new file mode 100644 index 0000000..4f4b53e --- /dev/null +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/AssembleWaybillColumns.kt @@ -0,0 +1,27 @@ +package com.lukouguoji.gjc.page.assemble + +/** + * 开始组装页「运单列表」列宽权重,表头与 item_assemble_waybill 共用以保证列对齐 + * + * 首次装货成功前后,件数/重量列表头文字长短差异很大(「件数」↔「剩余件数/总件数」), + * 一套列宽无法让两种状态下 5 列文字间距都均匀,故按状态各取一套。 + * 数值即平板(AutoSize 1152dp 基准)上各列的 dp 宽度;「选择」列固定 64dp 不在其中。 + */ +object AssembleWaybillColumns { + + const val WB_NO = 0 + const val PIECES = 1 + const val GAP = 2 // 件数与重量之间的间隔 + const val WEIGHT = 3 + const val FLIGHT = 4 + + /** 表头「件数 / 重量」 */ + private val TOTAL = floatArrayOf(237f, 72f, 76f, 72f, 250f) + + /** 表头「剩余件数/总件数 / 剩余重量/总重量」;重量列放宽到 140,容纳"120856.0/123456.0"不换行 */ + private val REMAINING = floatArrayOf(199f, 120f, 57f, 140f, 192f) + + @JvmStatic + fun weight(column: Int, showRemaining: Boolean): Float = + (if (showRemaining) REMAINING else TOTAL)[column] +} diff --git a/module_gjc/src/main/res/layout/activity_int_exp_assemble_start.xml b/module_gjc/src/main/res/layout/activity_int_exp_assemble_start.xml index c544a34..967316a 100644 --- a/module_gjc/src/main/res/layout/activity_int_exp_assemble_start.xml +++ b/module_gjc/src/main/res/layout/activity_int_exp_assemble_start.xml @@ -11,6 +11,8 @@ + + @@ -179,7 +181,7 @@ + + + + + @@ -44,7 +46,7 @@ + + +