From 9755d9eefb12f95fa45c785e526038e10c9c7115 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 25 四月 2025 18:15:51 +0800 Subject: [PATCH] 短信fix --- app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt | 47 ++++++++++++++++++++++++++--------------------- 1 files changed, 26 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..3f2d7b2 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 { @@ -85,15 +85,16 @@ stationName.contains("妈妈") -> R.drawable.express_mama stationName.contains("小兵") -> R.drawable.express_xiaobing stationName.contains("蓝店") -> R.drawable.express_landian + stationName.contains("丰巢") -> R.drawable.express_fengchao else -> R.drawable.express_normal } - + binding.ivStationIcon.setImageResource(stationIconResId) - + // 确保所有数据都被更新 packagesAdapter.submitList(null) packagesAdapter.submitList(group.packages) - + // 请求布局刷新 binding.rvPackages.requestLayout() } @@ -106,9 +107,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 +127,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 +144,7 @@ binding.tvCompany.text = pack.company binding.tvCreateTime.text = pack.createTime binding.tvTrackingNumber.text = pack.trackingNumber - + // 根据快递公司名称设置相应的图标 val companyName = pack.company.lowercase() val logoResId = when { @@ -152,20 +153,22 @@ companyName.contains("韵达") -> R.drawable.express_package_yunda companyName.contains("圆通") -> R.drawable.express_package_yuantong companyName.contains("申通") -> R.drawable.express_package_shentong + companyName.contains("中通") -> R.drawable.express_package_zhongtong companyName.contains("邮政") || companyName.contains("ems") -> R.drawable.express_package_youzheng companyName.contains("极兔") -> R.drawable.express_package_jitu + companyName.contains("丰巢") -> R.drawable.express_fengchao 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 +197,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 +208,7 @@ onPackagePickup(pack) } } - + binding.root.setOnClickListener(null) } @@ -219,7 +222,7 @@ // else R.drawable.circle R.drawable.circle ) - + // 根据快递公司名称设置相应的图标 val companyName = pack.company.lowercase() val logoResId = when { @@ -228,11 +231,13 @@ companyName.contains("韵达") -> R.drawable.express_package_yunda companyName.contains("圆通") -> R.drawable.express_package_yuantong companyName.contains("申通") -> R.drawable.express_package_shentong + companyName.contains("中通") -> R.drawable.express_package_zhongtong companyName.contains("邮政") || companyName.contains("ems") -> R.drawable.express_package_youzheng companyName.contains("极兔") -> R.drawable.express_package_jitu + companyName.contains("丰巢") -> R.drawable.express_fengchao else -> R.drawable.express_normal } - + binding.ivCompanyLogo.setImageResource(logoResId) } } @@ -256,4 +261,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