From e103a70d2ac198ebbd7493eb657e2cd23089d028 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 18 四月 2025 15:43:46 +0800
Subject: [PATCH] fix : 列表图标
---
app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt | 42 +++++++++++++++++++++---------------------
1 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt b/app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt
index d6417cd..8db9999 100644
--- a/app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt
+++ b/app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt
@@ -14,7 +14,7 @@
import com.example.firstapp.databinding.ItemExpressPackageHomeBinding
class ExpressAdapter : ListAdapter<ExpressGroup, ExpressAdapter.ViewHolder>(ExpressGroupDiffCallback()) {
-
+
private var onPackageClickListener: (ExpressGroup, ExpressPackage) -> Unit = { _, _ -> }
fun setOnPackageClickListener(listener: (ExpressGroup, ExpressPackage) -> Unit) {
@@ -34,7 +34,7 @@
holder.setOnPackageClickListener(onPackageClickListener)
}
- inner class ViewHolder(private val binding: ItemExpressGroupBinding) :
+ inner class ViewHolder(private val binding: ItemExpressGroupBinding) :
RecyclerView.ViewHolder(binding.root) {
private val packagesAdapter = ExpressPackageHomeAdapter { pack ->
currentGroup?.let { group ->
@@ -51,7 +51,7 @@
// 禁用内部RecyclerView的垂直滚动
return false
}
-
+
// 确保测量所有子项,防止部分内容不可见
override fun onLayoutChildren(recycler: RecyclerView.Recycler, state: RecyclerView.State) {
try {
@@ -74,7 +74,7 @@
currentGroup = group
binding.tvStationName.text = group.stationName
binding.tvPackageCount.text = "共${group.packages.size}个包裹"
-
+
// 根据驿站名称设置相应的图标
val stationName = group.stationName.lowercase()
val stationIconResId = when {
@@ -87,13 +87,13 @@
stationName.contains("蓝店") -> R.drawable.express_landian
else -> R.drawable.express_normal
}
-
+
binding.ivStationIcon.setImageResource(stationIconResId)
-
+
// 确保所有数据都被更新
packagesAdapter.submitList(null)
packagesAdapter.submitList(group.packages)
-
+
// 请求布局刷新
binding.rvPackages.requestLayout()
}
@@ -106,9 +106,9 @@
}
// 首页使用的包裹适配器 - 简化版本
-class ExpressPackageHomeAdapter(private val onPackageClick: (ExpressPackage) -> Unit) :
+class ExpressPackageHomeAdapter(private val onPackageClick: (ExpressPackage) -> Unit) :
ListAdapter<ExpressPackage, ExpressPackageHomeAdapter.ViewHolder>(ExpressPackageDiffCallback()) {
-
+
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val binding = ItemExpressPackageHomeBinding.inflate(
LayoutInflater.from(parent.context), parent, false
@@ -126,9 +126,9 @@
return currentList.size
}
- inner class ViewHolder(private val binding: ItemExpressPackageHomeBinding) :
+ inner class ViewHolder(private val binding: ItemExpressPackageHomeBinding) :
RecyclerView.ViewHolder(binding.root) {
-
+
init {
binding.root.setOnClickListener {
val position = adapterPosition
@@ -143,7 +143,7 @@
binding.tvCompany.text = pack.company
binding.tvCreateTime.text = pack.createTime
binding.tvTrackingNumber.text = pack.trackingNumber
-
+
// 根据快递公司名称设置相应的图标
val companyName = pack.company.lowercase()
val logoResId = when {
@@ -156,16 +156,16 @@
companyName.contains("极兔") -> R.drawable.express_package_jitu
else -> R.drawable.express_normal
}
-
+
binding.ivCompanyLogo.setImageResource(logoResId)
}
}
}
// 取件页面使用的包裹适配器
-class ExpressPackageAdapter(private val onPackagePickup: (ExpressPackage) -> Unit = { _ -> }) :
+class ExpressPackageAdapter(private val onPackagePickup: (ExpressPackage) -> Unit = { _ -> }) :
ListAdapter<ExpressPackage, ExpressPackageAdapter.ViewHolder>(ExpressPackageDiffCallback()) {
-
+
private var onPackageClickListener: (ExpressPackage) -> Unit = {}
private var stationName: String = ""
@@ -194,9 +194,9 @@
return currentList.size
}
- inner class ViewHolder(private val binding: ItemPackageBinding) :
+ inner class ViewHolder(private val binding: ItemPackageBinding) :
RecyclerView.ViewHolder(binding.root) {
-
+
init {
binding.ivPackageStatus.setOnClickListener {
val position = adapterPosition
@@ -205,7 +205,7 @@
onPackagePickup(pack)
}
}
-
+
binding.root.setOnClickListener(null)
}
@@ -219,7 +219,7 @@
// else R.drawable.circle
R.drawable.circle
)
-
+
// 根据快递公司名称设置相应的图标
val companyName = pack.company.lowercase()
val logoResId = when {
@@ -232,7 +232,7 @@
companyName.contains("极兔") -> R.drawable.express_package_jitu
else -> R.drawable.express_normal
}
-
+
binding.ivCompanyLogo.setImageResource(logoResId)
}
}
@@ -256,4 +256,4 @@
override fun areContentsTheSame(oldItem: ExpressPackage, newItem: ExpressPackage): Boolean {
return oldItem == newItem
}
-}
\ No newline at end of file
+}
\ No newline at end of file
--
Gitblit v1.9.3