RecyclerViewd的用法

博客介绍RecyclerView的用法,原文地址为http://www.imooc.com/article/10421 。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.nxg.app.main import android.annotation.SuppressLint import androidx.lifecycle.ViewModelProvider import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.lifecycle.Observer import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.nxg.app.R import com.nxg.app.databinding.MainFragmentBinding import com.nxg.loopscrollanimation.RecyclerViewLoopScrollAnimation import com.nxg.loopscrollanimation.RecyclerViewScrollAction import com.nxg.loopscrollanimation.utils.LogUtil class MainFragment : Fragment() { companion object { fun newInstance() = MainFragment() } private lateinit var viewModel: MainViewModel private var _binding: MainFragmentBinding? = null // This property is only valid between onCreateView and // onDestroyView. private val binding get() = _binding!! private val doubleColorBallDataA = mutableListOf<List<TextBean>>() private val doubleColorBallDataB = mutableListOf<List<TextBean>>() private val doubleColorBallDataC = mutableListOf<List<TextBean>>() private val doubleColorBallDataD = mutableListOf<List<TextBean>>() private val doubleColorBallDataE = mutableListOf<List<TextBean>>() @SuppressLint("NotifyDataSetChanged") override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { viewModel = ViewModelProvider.AndroidViewModelFactory.getInstance(AppApplication.instance()) .create(MainViewModel::class.java) _binding = MainFragmentBinding.inflate(inflater, container, false) val root: View = binding.root val doubleColorBallRecyclerViewA = binding.doubleColorBallRecyclerViewA val doubleColorBallRecyclerViewB = binding.doubleColorBallRecyclerViewB val doubleColorBallRecyclerViewC = binding.doubleColorBallRecyclerViewC val doubleColorBallRecyclerViewD = binding.doubleColorBallRecyclerViewD val doubleColorBallRecyclerViewE = binding.doubleColorBallRecyclerViewE val doubleColorBallAdapterA = DoubleColorBallAdapter( requireContext(), R.layout.double_color_ball_item, doubleColorBallDataA ) val doubleColorBallAdapterB = DoubleColorBallAdapter( requireContext(), R.layout.double_color_ball_item, doubleColorBallDataB ) val doubleColorBallAdapterC = DoubleColorBallAdapter( requireContext(), R.layout.double_color_ball_item, doubleColorBallDataC ) val doubleColorBallAdapterD = DoubleColorBallAdapter( requireContext(), R.layout.double_color_ball_item, doubleColorBallDataD ) val doubleColorBallAdapterE = DoubleColorBallAdapter( requireContext(), R.layout.double_color_ball_item, doubleColorBallDataE ) doubleColorBallRecyclerViewA.layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false) doubleColorBallRecyclerViewA.adapter = doubleColorBallAdapterA doubleColorBallRecyclerViewA.addItemDecoration(DoubleColorBallItemDecoration(20)) doubleColorBallRecyclerViewB.layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false) doubleColorBallRecyclerViewB.adapter = doubleColorBallAdapterB doubleColorBallRecyclerViewB.addItemDecoration(DoubleColorBallItemDecoration(20)) doubleColorBallRecyclerViewC.layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false) doubleColorBallRecyclerViewC.adapter = doubleColorBallAdapterC doubleColorBallRecyclerViewC.addItemDecoration(DoubleColorBallItemDecoration(20)) doubleColorBallRecyclerViewD.layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false) doubleColorBallRecyclerViewD.adapter = doubleColorBallAdapterD doubleColorBallRecyclerViewD.addItemDecoration(DoubleColorBallItemDecoration(20)) doubleColorBallRecyclerViewE.layoutManager = LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false) doubleColorBallRecyclerViewE.adapter = doubleColorBallAdapterE doubleColorBallRecyclerViewE.addItemDecoration(DoubleColorBallItemDecoration(20)) viewModel.doubleColorBallNum.observe(viewLifecycleOwner, { doubleColorBallDataA.clear() doubleColorBallDataA.addAll(it) doubleColorBallDataA.shuffle() doubleColorBallDataB.clear() doubleColorBallDataB.addAll(it) doubleColorBallDataB.shuffle() doubleColorBallDataC.clear() doubleColorBallDataC.addAll(it) doubleColorBallDataC.shuffle() doubleColorBallDataD.clear() doubleColorBallDataD.addAll(it) doubleColorBallDataD.shuffle() doubleColorBallDataE.clear() doubleColorBallDataE.addAll(it) doubleColorBallDataE.shuffle() doubleColorBallAdapterA.notifyDataSetChanged() doubleColorBallAdapterB.notifyDataSetChanged() doubleColorBallAdapterC.notifyDataSetChanged() doubleColorBallAdapterD.notifyDataSetChanged() doubleColorBallAdapterE.notifyDataSetChanged() }) binding.doubleColorBallLottery.setOnClickListener { //开始摇号,遍历每一个RecyclerView调用RecyclerViewLoopScrollAnimation.start() val ballsA = viewModel.createSevenDoubleColorBall() LogUtil.i("MainFragment", "ballsA $ballsA") doubleColorBallAdapterA.fakeResult.clear() doubleColorBallAdapterA.fakeResult.addAll(ballsA) for ((index, _) in doubleColorBallDataA.withIndex()) { val viewHolder = doubleColorBallRecyclerViewA.findViewHolderForLayoutPosition(index) as DoubleColorBallAdapter.DoubleColorBallViewHolder viewHolder.recyclerViewLoopScrollAnimation.start(0L) } val ballsB = viewModel.createSevenDoubleColorBall() LogUtil.i("MainFragment", "ballsB $ballsB") doubleColorBallAdapterB.fakeResult.clear() doubleColorBallAdapterB.fakeResult.addAll(ballsB) for ((index, _) in doubleColorBallDataB.withIndex()) { val viewHolder = doubleColorBallRecyclerViewB.findViewHolderForLayoutPosition(index) as DoubleColorBallAdapter.DoubleColorBallViewHolder viewHolder.recyclerViewLoopScrollAnimation.start(100L) } val ballsC = viewModel.createSevenDoubleColorBall() LogUtil.i("MainFragment", "ballsC $ballsC") doubleColorBallAdapterC.fakeResult.clear() doubleColorBallAdapterC.fakeResult.addAll(ballsC) for ((index, _) in doubleColorBallDataC.withIndex()) { val viewHolder = doubleColorBallRecyclerViewC.findViewHolderForLayoutPosition(index) as DoubleColorBallAdapter.DoubleColorBallViewHolder viewHolder.recyclerViewLoopScrollAnimation.start(200L) } val ballsD = viewModel.createSevenDoubleColorBall() LogUtil.i("MainFragment", "ballsD $ballsD") doubleColorBallAdapterD.fakeResult.clear() doubleColorBallAdapterD.fakeResult.addAll(ballsD) for ((index, _) in doubleColorBallDataD.withIndex()) { val viewHolder = doubleColorBallRecyclerViewD.findViewHolderForLayoutPosition(index) as DoubleColorBallAdapter.DoubleColorBallViewHolder viewHolder.recyclerViewLoopScrollAnimation.start(300L) } val ballsE = viewModel.createSevenDoubleColorBall() LogUtil.i("MainFragment", "ballsE $ballsE") doubleColorBallAdapterE.fakeResult.clear() doubleColorBallAdapterE.fakeResult.addAll(ballsE) for ((index, _) in doubleColorBallDataE.withIndex()) { val viewHolder = doubleColorBallRecyclerViewE.findViewHolderForLayoutPosition(index) as DoubleColorBallAdapter.DoubleColorBallViewHolder viewHolder.recyclerViewLoopScrollAnimation.start(400L) } } viewModel.appInfo.observe(viewLifecycleOwner, { binding.appInfo.text = it }) viewModel.refreshDoubleColorBallNum() return root } } 转成Android Java
06-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值