From f496392b24eb9c9a38498cbbf03159ef5aa037d1 Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期一, 21 四月 2025 15:38:08 +0800
Subject: [PATCH] 1.好友邀请-我的邀请记录:列表样式重写,图片显示 2.已登录的用户点击应用图标之后直接登录
---
app/src/main/java/com/example/firstapp/adapter/TrainAdapter.kt | 43 ++++++++++++++++++++++++++++++++++++++-----
1 files changed, 38 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/com/example/firstapp/adapter/TrainAdapter.kt b/app/src/main/java/com/example/firstapp/adapter/TrainAdapter.kt
index 0efd02f..fb7490a 100644
--- a/app/src/main/java/com/example/firstapp/adapter/TrainAdapter.kt
+++ b/app/src/main/java/com/example/firstapp/adapter/TrainAdapter.kt
@@ -47,8 +47,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)
}
}
@@ -56,7 +71,11 @@
currentGroup = group
binding.tvStationName.text = group.stationName
binding.tvPackageCount.text = "共${group.packages.size}张车票"
+
+ packagesAdapter.submitList(null)
packagesAdapter.submitList(group.packages)
+
+ binding.rvPackages.requestLayout()
}
fun setOnPackageClickListener(listener: (TrainGroup, TrainPackage) -> Unit) {
@@ -82,13 +101,20 @@
holder.bind(pack)
}
+ override fun getItemCount(): Int {
+ return currentList.size
+ }
+
inner class ViewHolder(private val binding: ItemTrainPackageHomeBinding) :
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)
+ }
}
}
@@ -127,13 +153,20 @@
holder.bind(pack)
}
+ override fun getItemCount(): Int {
+ return currentList.size
+ }
+
inner class ViewHolder(private val binding: ItemTrainBinding) :
RecyclerView.ViewHolder(binding.root) {
init {
binding.ivPackageStatus.setOnClickListener {
- val pack = getItem(adapterPosition)
- onPackagePickup(pack)
+ val position = adapterPosition
+ if (position != RecyclerView.NO_POSITION) {
+ val pack = getItem(position)
+ onPackagePickup(pack)
+ }
}
binding.root.setOnClickListener(null)
--
Gitblit v1.9.3