RecycleView可以简单地理解为ListView(列表)和GridView(网格)的集合体(从页面的角度)
那么RecycleView如何实现ListView的效果:
首先引入gradle中引入implementation ‘androidx.recyclerview:recyclerview:1.0.0’
2.将recycleView写入xml中:
3在代码中设置recyclerView的属性setLayoutManager为LinearLayoutManager,然后将LinearLayoutManager的setOrientation设置为RecyclerView.VERTICAL(竖向)/RecyclerView.HORIZONTAL(横向),此时的recyclerView展示效果就类似listView了。(Adapter在后面统一说明)
LinearLayoutManager lm = new LinearLayoutManager(getActivity());lm.setOrientation(RecyclerView.VERTICAL);recyclerView.setLayoutManager(lm);那么RecycleView如何实现GridView的效果:
只需要把第3步的LinearLayoutManager换成GridLayoutManager就可以实现类似GridView的效果。
GridLayoutManager gl=new GridLayoutManager(getActivity(),4);recyclerView.setLayoutManager(gl);GridLayoutManager的第二个参数“4”就是表示一行4列
Adapter
当然无论是ListView,GridView,还是RecycleView都需要Adapter(适配器)
新建个继承RecyclerView.Adapter的类
重写onCreateViewHolder,onBindViewHolder,getItemCount三个方法
onCreateViewHolder:我们需要提供一个继承RecyclerView.ViewHolder的类
onBindViewHolder:在这个方法里我们可以做页面的数据绑定
getItemCount:告诉Adapter我们的数据长度
public class TongXunLuAdapter extends RecyclerView.Adapter { private Context context; private List listData; public TongXunLuAdapter(Context context, List listData) { this.context = context; this.listData = listData; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { MyViewHolder myViewHolder = new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.item_tong_xun_lu, parent, false)); return myViewHolder; } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) { MyViewHolder myViewHolder = (MyViewHolder) holder; myViewHolder.name_tv.setText(listData.get(position)); } @Override public int getItemCount() { return listData == null ? 0 : listData.size(); }private class MyViewHolder extends RecyclerView.ViewHolder { private TextView header_tv, name_tv; private ImageView avatar_iv; private LinearLayout parent_ll; public MyViewHolder(@NonNull View itemView) { super(itemView); header_tv = itemView.findViewById(R.id.header_tv); name_tv = itemView.findViewById(R.id.name_tv); avatar_iv = itemView.findViewById(R.id.avatar_iv); parent_ll = itemView.findViewById(R.id.parent_ll); } }}最后我们需要在代码中将Adapter和RecycleView绑定
TongXunLuAdapter tongXunLuAdapter = new TongXunLuAdapter(getActivity(), listData);recyclerView.setAdapter(tongXunLuAdapter);
如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。