| | |
| | | |
| | | 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) |
| | | } |
| | | } |
| | | |
| | |
| | | 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: (FlightGroup, FlightPackage) -> Unit) { |
| | |
| | | holder.bind(pack) |
| | | } |
| | | |
| | | override fun getItemCount(): Int { |
| | | return currentList.size |
| | | } |
| | | |
| | | inner class ViewHolder(private val binding: ItemFlightPackageHomeBinding) : |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | holder.bind(pack) |
| | | } |
| | | |
| | | override fun getItemCount(): Int { |
| | | return currentList.size |
| | | } |
| | | |
| | | inner class ViewHolder(private val binding: ItemFlightBinding) : |
| | | 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) |