RecyclerView的用法(示例)

github:https://github.com/a1043629865/recyclerview

1添加依赖

implementation 'androidx.recyclerview:recyclerview:1.1.0'

2 添加布局xml文件

 <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_View"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

3 添加item的xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="90dp">

        <TextView
            android:id="@+id/time"
            android:layout_width="150dp"
            android:layout_height="40dp"
            android:layout_marginTop="23dp"
            android:layout_marginLeft="90dp"
            android:text="2021-7-7"
            android:textSize="35dp"/>

        <TextView
            android:id="@+id/detail"
            android:layout_width="110dp"
            android:layout_height="60dp"
            android:layout_marginLeft="250dp"
            android:layout_marginTop="20dp"
            android:text="80.0"
            android:textSize="40dp"/>
        <TextView
            android:layout_width="70dp"
            android:layout_height="60dp"
            android:layout_marginLeft="340dp"
            android:layout_marginTop="20dp"
            android:text="KG"
            android:textSize="40dp"/>
    </FrameLayout>
</LinearLayout>

4 添加数据实例

open class weightData(
    val weight: Double,
    val time: String
)

5 MainActivity

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView

class MainActivity : AppCompatActivity() {
    private val list = listOf(
        weightData(25.0, "2020-7-1", 22.0),
        weightData(23.0, "2020-7-2", 22.0),
        weightData(22.0, "2020-7-3", 22.0),
        weightData(21.0, "2020-7-4", 22.0)
    )

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        val recyclerView: RecyclerView = findViewById(R.id.recycler_View)
        //线性布局
        recyclerView.layoutManager = LinearLayoutManager(this)
        recyclerView.adapter = WeightAdapter(list)
    }

    class WeightAdapter(private val list: List<weightData>) :
        RecyclerView.Adapter<WeightAdapter.MyViewHolder>() {

        class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
            val time: TextView = itemView.findViewById(R.id.time)
            val weight: TextView = itemView.findViewById(R.id.detail)
        }


        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
            val view =
                LayoutInflater.from(parent.context).inflate(R.layout.weight_item, parent, false)
            return MyViewHolder(view)
        }

        override fun getItemCount(): Int {
            return list.size
        }
        //模型与视图的绑定
        override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
            val w = list[position]
            holder.time.text = w.time
            holder.weight.text = w.weight.toString()
        }
    }
}

不具体讲解了,大家直接看代码吧,写的不好,也是刚学的。正常情况直接搬运代码就可以运行出来,能理解就理解一下原理,理解不了就直接照着画吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值