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/IncomeAdapter.kt | 90 +++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 86 insertions(+), 4 deletions(-)
diff --git a/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt b/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt
index 856ba45..fd341a8 100644
--- a/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt
+++ b/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt
@@ -6,6 +6,7 @@
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
+import com.example.firstapp.R
import com.example.firstapp.databinding.ItemIncomeGroupBinding
import com.example.firstapp.databinding.ItemIncomePackageHomeBinding
import com.example.firstapp.model.IncomeGroup
@@ -42,8 +43,23 @@
init {
binding.rvPackages.apply {
- layoutManager = LinearLayoutManager(context)
+ layoutManager = object : LinearLayoutManager(context) {
+ override fun canScrollVertically(): Boolean {
+ return false
+ }
+
+ override fun onLayoutChildren(recycler: RecyclerView.Recycler, state: RecyclerView.State) {
+ try {
+ super.onLayoutChildren(recycler, state)
+ } catch (e: IndexOutOfBoundsException) {
+ // 捕获可能的异常,防止崩溃
+ }
+ }
+ }
adapter = packagesAdapter
+ isNestedScrollingEnabled = false
+ setItemViewCacheSize(20)
+ setHasFixedSize(true)
}
}
@@ -51,7 +67,39 @@
currentGroup = group
binding.tvStationName.text = group.stationName
binding.tvPackageCount.text = "共${group.packages.size}笔收入"
+
+ val stationName = group.stationName.lowercase()
+ val stationIconResId = when {
+ stationName.isEmpty() || stationName == "未知" -> R.drawable.finance_income_bank_normal
+ stationName.contains("工商银行") -> R.drawable.bank_gongshang
+ stationName.contains("光大银行") -> R.drawable.bank_guangda
+ stationName.contains("国家开发银行") -> R.drawable.bank_guojiakaifa
+ stationName.contains("恒丰银行") -> R.drawable.bank_hengfeng
+ stationName.contains("华夏银行") -> R.drawable.bank_huaxia
+ stationName.contains("花呗分期") -> R.drawable.bank_huabeifenqi
+ stationName.contains("建设银行") -> R.drawable.bank_jianshe
+ stationName.contains("交通银行") -> R.drawable.bank_jiaotong
+ stationName.contains("民生银行") -> R.drawable.bank_mingsheng
+ stationName.contains("南京银行") -> R.drawable.bank_nanjing
+ stationName.contains("农商银行") -> R.drawable.bank_nongshang
+ stationName.contains("农业银行") -> R.drawable.bank_nongye
+ stationName.contains("平安银行") -> R.drawable.bank_pingan
+ stationName.contains("浦发银行") -> R.drawable.bank_pufa
+ stationName.contains("苏州银行") -> R.drawable.bank_suzhou
+ stationName.contains("邮储银行") -> R.drawable.bank_youzheng
+ stationName.contains("招商银行") -> R.drawable.bank_zhaoshang
+ stationName.contains("中国银行") -> R.drawable.bank_zhongguo
+ stationName.contains("中信银行") -> R.drawable.bank_zhongxin
+ stationName.contains("中原银行") -> R.drawable.bank_zhongyuan
+ else -> R.drawable.finance_income_bank_normal
+ }
+
+ binding.ivStationIcon.setImageResource(stationIconResId)
+
+ packagesAdapter.submitList(null)
packagesAdapter.submitList(group.packages)
+
+ binding.rvPackages.requestLayout()
}
}
}
@@ -71,13 +119,20 @@
holder.bind(pack)
}
+ override fun getItemCount(): Int {
+ return currentList.size
+ }
+
inner class ViewHolder(private val binding: ItemIncomePackageHomeBinding) :
RecyclerView.ViewHolder(binding.root) {
init {
binding.root.setOnClickListener {
- val pack = getItem(adapterPosition)
- onPackageClick(pack)
+ val position = adapterPosition
+ if (position != RecyclerView.NO_POSITION) {
+ val pack = getItem(position)
+ onPackageClick(pack)
+ }
}
}
@@ -85,6 +140,33 @@
binding.tvCompany.text = pack.company
binding.tvCreateTime.text = pack.createTime
binding.tvTrackingNumber.text = "¥${pack.trackingNumber}"
+ val companyName = pack.company.lowercase()
+ val logoResId = when {
+ companyName.isEmpty() || companyName == "未知" -> R.drawable.finance_income_bank_normal
+ companyName.contains("工商银行") -> R.drawable.bank_gongshang
+ companyName.contains("光大银行") -> R.drawable.bank_guangda
+ companyName.contains("国家开发银行") -> R.drawable.bank_guojiakaifa
+ companyName.contains("恒丰银行") -> R.drawable.bank_hengfeng
+ companyName.contains("华夏银行") -> R.drawable.bank_huaxia
+ companyName.contains("花呗分期") -> R.drawable.bank_huabeifenqi
+ companyName.contains("建设银行") -> R.drawable.bank_jianshe
+ companyName.contains("交通银行") -> R.drawable.bank_jiaotong
+ companyName.contains("民生银行") -> R.drawable.bank_mingsheng
+ companyName.contains("南京银行") -> R.drawable.bank_nanjing
+ companyName.contains("农商银行") -> R.drawable.bank_nongshang
+ companyName.contains("农业银行") -> R.drawable.bank_nongye
+ companyName.contains("平安银行") -> R.drawable.bank_pingan
+ companyName.contains("浦发银行") -> R.drawable.bank_pufa
+ companyName.contains("苏州银行") -> R.drawable.bank_suzhou
+ companyName.contains("邮储银行") -> R.drawable.bank_youzheng
+ companyName.contains("招商银行") -> R.drawable.bank_zhaoshang
+ companyName.contains("中国银行") -> R.drawable.bank_zhongguo
+ companyName.contains("中信银行") -> R.drawable.bank_zhongxin
+ companyName.contains("中原银行") -> R.drawable.bank_zhongyuan
+ companyName.contains("支付宝") -> R.drawable.finance_zhifubao
+ else -> R.drawable.finance_income_bank_normal
+ }
+ binding.ivCompanyLogo.setImageResource(logoResId)
// binding.tvBalance.text = "余额: ¥${pack.balance}"
}
}
@@ -108,4 +190,4 @@
override fun areContentsTheSame(oldItem: IncomePackage, newItem: IncomePackage): Boolean {
return oldItem == newItem
}
-}
\ No newline at end of file
+}
\ No newline at end of file
--
Gitblit v1.9.3