style: 六个国际出港/进港列表页统一分单子列表样式并状态标签化

参照国际出港运抵列表,为出港仓库/组装/理货、进港舱单/理货/仓库
六个页面的分单子列表统一外观:子列表整块白色圆角、表头浅蓝背景
顶部圆角、表头及内容行分割线改用 app:dividerColor 修复偏紫问题;
主表与子表状态字段改为按值着色的胶囊标签(清仓正常/复磅/回填/
申报状态等)。tag_status_* 与 bg_arrive_sub_header 由 module_gjc
提升至 module_base 供进港模块共用。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-15 15:47:18 +08:00
parent 2f875e32c9
commit c3c9a77942
17 changed files with 154 additions and 73 deletions

View File

@@ -163,9 +163,12 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{bean.wtDate != null &amp;&amp; !bean.wtDate.isEmpty() ? @drawable/tag_status_green : @drawable/tag_status_gray}"
android:paddingHorizontal="8dp"
android:paddingVertical="2dp"
android:text="@{bean.wtDate != null &amp;&amp; !bean.wtDate.isEmpty() ? `已复磅` : `未复磅`}"
android:textColor="@{bean.wtDate != null &amp;&amp; !bean.wtDate.isEmpty() ? @color/text_green : @color/text_normal}"
android:textSize="15sp" />
android:textColor="@{bean.wtDate != null &amp;&amp; !bean.wtDate.isEmpty() ? @color/text_green : @color/text_gray}"
android:textSize="14sp" />
</LinearLayout>
@@ -188,9 +191,13 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{`2`.equals(bean.fillWeightFlag) ? @drawable/tag_status_green : (`1`.equals(bean.fillWeightFlag) ? @drawable/tag_status_orange : @drawable/tag_status_gray)}"
android:paddingHorizontal="8dp"
android:paddingVertical="2dp"
android:text="@{bean.fillWeightFlagText}"
android:textColor="@{bean.isFillWeightGreen ? @color/text_green : @color/text_normal}"
android:textSize="15sp" />
android:textColor="@{`2`.equals(bean.fillWeightFlag) ? @color/text_green : (`1`.equals(bean.fillWeightFlag) ? @color/text_orange : @color/text_gray)}"
android:textSize="14sp"
android:visibility="@{bean.fillWeightFlagText != null &amp;&amp; !bean.fillWeightFlagText.isEmpty() ? View.VISIBLE : View.GONE}" />
</LinearLayout>
@@ -377,8 +384,8 @@
visible="@{bean.showMore}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="#e3f6e0"
android:layout_marginTop="10dp"
android:background="@drawable/bg_white_radius_8"
android:orientation="vertical"
android:visibility="gone">
@@ -416,14 +423,15 @@
android:textSize="14sp"
android:visibility="gone" />
<!-- 表头 (有数据时显示) -->
<!-- 表头 (有数据时显示,浅蓝色背景,顶部圆角同卡片) -->
<LinearLayout
visible="@{bean.hasWaybillDetails &amp;&amp; !bean.isLoading.get()}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:background="@drawable/bg_arrive_sub_header"
android:orientation="horizontal"
android:paddingHorizontal="10dp"
android:paddingVertical="10dp"
android:visibility="gone">
<TextView
@@ -512,7 +520,7 @@
visible="@{bean.hasWaybillDetails &amp;&amp; !bean.isLoading.get()}"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider"
app:dividerColor="@color/sub_list_divider"
android:visibility="gone" />
<!-- 子列表 RecyclerView (有数据时显示) -->

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
@@ -110,7 +111,7 @@
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
</LinearLayout>
</layout>

View File

@@ -246,8 +246,13 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{`1`.equals(bean.clearNormal) ? @drawable/tag_status_green : (`0`.equals(bean.clearNormal) ? @drawable/tag_status_orange : @drawable/tag_status_gray)}"
android:paddingHorizontal="8dp"
android:paddingVertical="2dp"
android:text="@{bean.clearNormalText}"
android:textSize="15sp" />
android:textColor="@{`1`.equals(bean.clearNormal) ? @color/text_green : (`0`.equals(bean.clearNormal) ? @color/text_orange : @color/text_gray)}"
android:textSize="14sp"
android:visibility="@{bean.clearNormalText != null &amp;&amp; !bean.clearNormalText.isEmpty() ? View.VISIBLE : View.GONE}" />
</LinearLayout>
@@ -319,18 +324,19 @@
visible="@{bean.showMore}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="#e3f6e0"
android:layout_marginTop="10dp"
android:background="@drawable/bg_white_radius_8"
android:orientation="vertical"
android:visibility="gone">
<!-- 表头 -->
<!-- 表头(浅蓝色背景,顶部圆角同卡片) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:background="@drawable/bg_arrive_sub_header"
android:orientation="horizontal"
android:paddingHorizontal="10dp">
android:paddingHorizontal="10dp"
android:paddingVertical="10dp">
<TextView
android:layout_width="0dp"
@@ -397,7 +403,7 @@
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
<!-- 子列表 RecyclerView -->
<androidx.recyclerview.widget.RecyclerView

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:loadImage="http://schemas.android.com/tools">
<data>
@@ -95,7 +96,7 @@
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
</LinearLayout>
</layout>

View File

@@ -25,7 +25,7 @@
<!-- 状态 (weight=1) -->
<LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" android:orientation="horizontal">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" completeSpace="@{4}" android:text="状态:" android:textColor="@color/text_normal" android:textSize="15sp"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.declareStatus}" android:textColor="@{`01`.equals(bean.declareStatus) ? @color/text_green : (`W`.equals(bean.declareStatus) ? @color/text_blue : @color/text_normal)}" android:textSize="15sp"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@{`01`.equals(bean.declareStatus) ? @drawable/tag_status_green : (`W`.equals(bean.declareStatus) ? @drawable/tag_status_blue : @drawable/tag_status_gray)}" android:paddingHorizontal="8dp" android:paddingVertical="2dp" android:text="@{bean.declareStatus}" android:textColor="@{`01`.equals(bean.declareStatus) ? @color/text_green : (`W`.equals(bean.declareStatus) ? @color/colorPrimary : @color/text_gray)}" android:textSize="14sp" android:visibility="@{bean.declareStatus != null &amp;&amp; !bean.declareStatus.isEmpty() ? View.VISIBLE : View.GONE}"/>
</LinearLayout>
<!-- 代理 (weight=1) -->
<LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" android:orientation="horizontal">
@@ -84,7 +84,7 @@
android:src="@mipmap/img_down" />
</LinearLayout>
<!-- 子订单列表容器(在白色卡片外面) -->
<LinearLayout visible="@{bean.showMore}" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:background="#e3f6e0" android:orientation="vertical" android:visibility="gone">
<LinearLayout visible="@{bean.showMore}" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:background="@drawable/bg_white_radius_8" android:orientation="vertical" android:visibility="gone">
<!-- 暂无数据提示 -->
<TextView
android:id="@+id/tv_empty"
@@ -97,7 +97,7 @@
android:textSize="14sp"
android:visibility="gone" />
<!-- 表头 -->
<LinearLayout android:id="@+id/ll_header" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginVertical="10dp" android:paddingHorizontal="10dp" android:orientation="horizontal">
<LinearLayout android:id="@+id/ll_header" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_arrive_sub_header" android:paddingVertical="10dp" android:paddingHorizontal="10dp" android:orientation="horizontal">
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.5" android:gravity="center" android:text="选项" android:textColor="@color/text_normal" android:textSize="14sp" android:textStyle="bold"/>
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1.2" android:gravity="center" android:text="分单号" android:textColor="@color/text_normal" android:textSize="14sp" android:textStyle="bold"/>
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" android:gravity="center" android:text="件数" android:textColor="@color/text_normal" android:textSize="14sp" android:textStyle="bold"/>
@@ -113,7 +113,7 @@
android:id="@+id/divider_header"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider"/>
app:dividerColor="@color/sub_list_divider"/>
<!-- 子列表 RecyclerView -->
<androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_sub" android:layout_width="match_parent" android:layout_height="wrap_content" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
</LinearLayout>

View File

@@ -5,6 +5,8 @@
<data>
<import type="android.view.View" />
<variable
name="bean"
type="com.lukouguoji.module_base.bean.GjcHaWb" />
@@ -67,15 +69,26 @@
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 申报状态 -->
<TextView
<!-- 申报状态Tag 形式,根据语义着色) -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@{bean.tallyStatus ?? ``}"
android:textColor="@color/text_normal"
android:textSize="14sp" />
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{`未申报`.equals(bean.tallyStatus) ? @drawable/tag_status_gray : @drawable/tag_status_green}"
android:paddingHorizontal="8dp"
android:paddingVertical="2dp"
android:text="@{bean.tallyStatus ?? ``}"
android:textColor="@{`未申报`.equals(bean.tallyStatus) ? @color/text_gray : @color/text_green}"
android:textSize="13sp"
android:visibility="@{bean.tallyStatus != null &amp;&amp; !bean.tallyStatus.isEmpty() ? View.VISIBLE : View.GONE}" />
</LinearLayout>
<!-- 品名(中) -->
<TextView
@@ -132,7 +145,7 @@
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
</LinearLayout>

View File

@@ -349,13 +349,13 @@
</com.mcxtzhang.swipemenulib.SwipeMenuLayout>
<!-- 分单子列表容器(淡绿色背景 -->
<!-- 分单子列表容器(白色圆角卡片 -->
<LinearLayout
visible="@{bean.showMore}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="#e3f6e0"
android:layout_marginTop="10dp"
android:background="@drawable/bg_white_radius_8"
android:orientation="vertical"
android:visibility="gone">
@@ -371,14 +371,15 @@
android:textSize="14sp"
android:visibility="gone" />
<!-- 表头 -->
<!-- 表头(浅蓝色背景,顶部圆角同卡片) -->
<LinearLayout
android:id="@+id/ll_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:background="@drawable/bg_arrive_sub_header"
android:orientation="horizontal"
android:paddingHorizontal="10dp">
android:paddingHorizontal="10dp"
android:paddingVertical="10dp">
<TextView
android:layout_width="0dp"
@@ -458,7 +459,7 @@
android:id="@+id/divider_header"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
<!-- 子列表 RecyclerView -->
<androidx.recyclerview.widget.RecyclerView

View File

@@ -1,9 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:loadImage="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="bean"
type="com.lukouguoji.module_base.bean.GjjHaWb" />
@@ -87,31 +90,53 @@
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 原始舱单 -->
<TextView
<!-- 原始舱单Tag 形式,根据语义着色) -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1.0"
android:gravity="center"
android:maxLines="1"
android:ellipsize="end"
android:text="@{bean.mftStatus ?? ``}"
android:textColor="@color/colorPrimary"
android:textSize="14sp" />
android:orientation="horizontal">
<!-- 理货报告 -->
<TextView
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{`01`.equals(bean.mftStatus) ? @drawable/tag_status_green : (`W`.equals(bean.mftStatus) ? @drawable/tag_status_blue : @drawable/tag_status_gray)}"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="8dp"
android:paddingVertical="2dp"
android:text="@{bean.mftStatus ?? ``}"
android:textColor="@{`01`.equals(bean.mftStatus) ? @color/text_green : (`W`.equals(bean.mftStatus) ? @color/colorPrimary : @color/text_gray)}"
android:textSize="13sp"
android:visibility="@{bean.mftStatus != null &amp;&amp; !bean.mftStatus.isEmpty() ? View.VISIBLE : View.GONE}" />
</LinearLayout>
<!-- 理货报告Tag 形式,根据语义着色) -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1.0"
android:gravity="center"
android:maxLines="1"
android:ellipsize="end"
android:text="@{bean.tallyStatus ?? ``}"
android:textColor="@color/colorPrimary"
android:textSize="14sp" />
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{`01`.equals(bean.tallyStatus) ? @drawable/tag_status_green : (`W`.equals(bean.tallyStatus) ? @drawable/tag_status_blue : @drawable/tag_status_gray)}"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="8dp"
android:paddingVertical="2dp"
android:text="@{bean.tallyStatus ?? ``}"
android:textColor="@{`01`.equals(bean.tallyStatus) ? @color/text_green : (`W`.equals(bean.tallyStatus) ? @color/colorPrimary : @color/text_gray)}"
android:textSize="13sp"
android:visibility="@{bean.tallyStatus != null &amp;&amp; !bean.tallyStatus.isEmpty() ? View.VISIBLE : View.GONE}" />
</LinearLayout>
<!-- 品名(中) -->
<TextView
@@ -131,7 +156,7 @@
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
</LinearLayout>
</layout>

View File

@@ -247,8 +247,13 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{`1`.equals(bean.clearNormal) ? @drawable/tag_status_green : (`0`.equals(bean.clearNormal) ? @drawable/tag_status_orange : @drawable/tag_status_gray)}"
android:paddingHorizontal="8dp"
android:paddingVertical="2dp"
android:text="@{bean.clearNormalText}"
android:textSize="15sp" />
android:textColor="@{`1`.equals(bean.clearNormal) ? @color/text_green : (`0`.equals(bean.clearNormal) ? @color/text_orange : @color/text_gray)}"
android:textSize="14sp"
android:visibility="@{bean.clearNormalText != null &amp;&amp; !bean.clearNormalText.isEmpty() ? View.VISIBLE : View.GONE}" />
</LinearLayout>
@@ -319,8 +324,8 @@
visible="@{bean.showMore}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="#e3f6e0"
android:layout_marginTop="10dp"
android:background="@drawable/bg_white_radius_8"
android:orientation="vertical"
android:visibility="gone">
@@ -336,14 +341,15 @@
android:textSize="14sp"
android:visibility="gone" />
<!-- 表头 -->
<!-- 表头(浅蓝色背景,顶部圆角同卡片) -->
<LinearLayout
android:id="@+id/ll_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:background="@drawable/bg_arrive_sub_header"
android:orientation="horizontal"
android:paddingHorizontal="10dp">
android:paddingHorizontal="10dp"
android:paddingVertical="10dp">
<TextView
android:layout_width="0dp"
@@ -411,7 +417,7 @@
android:id="@+id/divider_header"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
<!-- 子列表 RecyclerView -->
<androidx.recyclerview.widget.RecyclerView

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:loadImage="http://schemas.android.com/tools">
<data>
@@ -95,7 +96,7 @@
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
</LinearLayout>
</layout>

View File

@@ -109,9 +109,13 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:background="@{`01`.equals(bean.status) ? @drawable/tag_status_green : (`W`.equals(bean.status) ? @drawable/tag_status_blue : @drawable/tag_status_gray)}"
android:paddingHorizontal="8dp"
android:paddingVertical="2dp"
android:textSize="14sp"
android:text="@{bean.status}"
android:textColor="@{`01`.equals(bean.status) ? @color/text_green : (`W`.equals(bean.status) ? @color/text_blue : @color/text_normal)}" />
android:textColor="@{`01`.equals(bean.status) ? @color/text_green : (`W`.equals(bean.status) ? @color/colorPrimary : @color/text_gray)}"
android:visibility="@{bean.status != null &amp;&amp; !bean.status.isEmpty() ? View.VISIBLE : View.GONE}" />
</LinearLayout>
@@ -340,8 +344,8 @@
visible="@{bean.showMore}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="#e3f6e0"
android:layout_marginTop="10dp"
android:background="@drawable/bg_white_radius_8"
android:orientation="vertical"
android:visibility="gone">
@@ -357,14 +361,15 @@
android:textSize="14sp"
android:visibility="gone" />
<!-- 表头 -->
<!-- 表头(浅蓝色背景,顶部圆角同卡片) -->
<LinearLayout
android:id="@+id/ll_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:background="@drawable/bg_arrive_sub_header"
android:orientation="horizontal"
android:paddingHorizontal="10dp">
android:paddingHorizontal="10dp"
android:paddingVertical="10dp">
<TextView
android:layout_width="0dp"
@@ -472,7 +477,7 @@
android:id="@+id/divider_header"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
<!-- 子列表 RecyclerView -->
<androidx.recyclerview.widget.RecyclerView

View File

@@ -1,9 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:loadImage="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="bean"
type="com.lukouguoji.module_base.bean.GjjImportTally" />
@@ -68,16 +71,27 @@
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 申报状态 -->
<TextView
<!-- 申报状态Tag 形式,根据语义着色) -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0.8"
android:gravity="center"
android:text="@{bean.status}"
android:textColor="#4CAF50"
android:textSize="14sp" />
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{`01`.equals(bean.status) ? @drawable/tag_status_green : (`W`.equals(bean.status) ? @drawable/tag_status_blue : @drawable/tag_status_gray)}"
android:paddingHorizontal="8dp"
android:paddingVertical="2dp"
android:text="@{bean.status}"
android:textColor="@{`01`.equals(bean.status) ? @color/text_green : (`W`.equals(bean.status) ? @color/colorPrimary : @color/text_gray)}"
android:textSize="13sp"
android:visibility="@{bean.status != null &amp;&amp; !bean.status.isEmpty() ? View.VISIBLE : View.GONE}" />
</LinearLayout>
<!-- 品名(中) -->
<TextView
@@ -141,7 +155,7 @@
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
app:dividerColor="@color/sub_list_divider" />
</LinearLayout>
</layout>