From 04b138d3836e03c9adbcbd367fd71d92905c5206 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期四, 17 四月 2025 13:17:45 +0800 Subject: [PATCH] add: 重复登录处理 --- app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt | 32 +++++++++++++++++++++++++++++--- 1 files changed, 29 insertions(+), 3 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..67ba7d7 100644 --- a/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt +++ b/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt @@ -42,8 +42,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 +66,11 @@ currentGroup = group binding.tvStationName.text = group.stationName binding.tvPackageCount.text = "共${group.packages.size}笔收入" + + packagesAdapter.submitList(null) packagesAdapter.submitList(group.packages) + + binding.rvPackages.requestLayout() } } } @@ -71,13 +90,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) + } } } -- Gitblit v1.9.3