• Adapter

      1. class Adapter(private val liveList: ArrayList<Information>): RecyclerView.Adapter<Adapter.ViewHolder>(){
      2. @SuppressLint("InflateParams")
      3. override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Adapter.ViewHolder {
      4. val view = LayoutInflater.from(parent.context).inflate(R.layout.local_pictrues_cell,null)
      5. return ViewHolder(view)
      6. }
      7. override fun onBindViewHolder(holder: Adapter.ViewHolder, position: Int) {
      8. holder.itemView.imageview.setImageResource(liveList[position].image)
      9. }
      10. override fun getItemCount(): Int {
      11. return liveList.size
      12. }
      13. inner class ViewHolder(itemView: View):RecyclerView.ViewHolder(itemView){
      14. }
      15. }
    • 在界面中调用

      @SuppressLint("WrongConstant")
        override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
            addImageList()
            val adapter = Adapter(images)
            // 第一个参数为context  第二个参数为设置为两行,第三个参数为设置展示方向
            val layoutManager =
                GridLayoutManager(requireContext(), 2, GridLayoutManager.HORIZONTAL, false)
            // 设置layoutManager的元素占比
            layoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
                override fun getSpanSize(position: Int): Int {
                    return when (position) {
                        // 0为第一个元素 2为独占两行
                        0 -> 2
                        else -> 1
                    }
                }
            }
            recycler_view.adapter = adapter
            recycler_view.layoutManager = layoutManager
        }
      
    • 实现效果

    b18eba89259d31c72d7c9ff04670538.jpg