1.引入库 recycleview
两种方法:
方法一.build.gradle文件里添加依赖
方法二.Project Structure里添加库
2.编写adapter,重写三个必要的方法
onCreatViewHolder 创建viewHolder
onBindViewHolder 控件绑定ViewHolder
getItemCount 获取条目个数
3.在对应的activity里引用adapter,并添加布局管理器
延伸:
//如果可以确定每个item的高度是固定的,设置这个选项可以提高性能 rv.setHasFixedSize(true); //添加Android自带的分割线 rv.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
基本代码如下:
1.
2.adaper类
package com.example.recycleview.adapter; import android.app.Person; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.example.recycleview.R; import java.util.List; import java.util.zip.Inflater; public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private Context mContext; private LayoutInflater inflate; public MyAdapter(Context context) { super(); mContext=context; inflate= LayoutInflater.from(context); } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup vg, int viewType) { View v = null; MyViewHolder myViewHolder = null; v = inflate.inflate(R.layout.item, vg, false); myViewHolder = new MyViewHolder(v); return myViewHolder; } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { MyViewHolder mh = (MyViewHolder) holder; mh.tv.setText("jjjjj"); } @Override public int getItemCount() { return 6; } class MyViewHolder extends RecyclerView.ViewHolder{ public TextView tv; public MyViewHolder(@NonNull View itemView) { super(itemView); // 初始化控件 tv= itemView.findViewById(R.id.tv); } } } 3.activity引用
package com.example.recycleview; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.os.Bundle; import android.widget.LinearLayout; import com.example.recycleview.adapter.MyAdapter; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RecyclerView rv =(RecyclerView)findViewById(R.id.rv); LinearLayoutManager lm=new LinearLayoutManager(this); rv.setLayoutManager(lm); rv.setAdapter(new MyAdapter(this)); //如果可以确定每个item的高度是固定的,设置这个选项可以提高性能 rv.setHasFixedSize(true); //添加Android自带的分割线 rv.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); } }