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 @@
+
+
+