RecyclerView实现聊天界面

  • 先看一下效果图
    在这里插入图片描述

  • RecyclerView简介

    RecyclerView是从Android5.0开始,谷歌公司推出的一个用于大量数据展示的新控件。RecyclerView可以替代传统的ListView,它更加强大和灵活,RecyclerView的官方定义如下

     A flexible view for providing a limited window into a large data set
    

    从定义可以看出flexible是其优点,RecyclerView是support-v7包中的新组件。

    RecyclerView相对于ListView的优点如下:

    1.RecyclerView封装了viewHolder的回收复用,也就是说Recyclerview标准化了viewHolder。

    2.设置布局管理器以控制item的布局方式,横向、竖向以及瀑布流方式,可以调用setLayoutManager设置布局方式。RecyclerView的布局管理器有LinearLayoutManager、GridLayoutManager和StaggeredGridLayoutManager。也可以调用布局管理器的setOrientation方法设置recyclerView的滚动方向。

    3.可以设置RecyclerView的间隔样式,通过继承RecyclerView的ItemDecoration这个类,去自定义间隔样式,然后调用addItemDecoration去添加间隔样式。

    4.可以控制item的增删动画,通过ItemAnimator这个类进行控制,调用setItemAnimator方法实现。

  • 实现原理

     public class RecycleViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
         private List<ChatWithFriendBean> mList;
         private Context mContext;
         private LayoutInflater mInflater;
         private AdapterView.OnItemClickListener mListener;
         private RequestOptions options;
     
         public interface OnItemClickListener{
             void onItemClick(ChatWithFriendBean bean);
         }
     
         public RecycleViewAdapter(Context context,List<ChatWithFriendBean> list) {
             mContext = context;
             mList = list;
             mInflater = LayoutInflater.from(mContext);
             options = new RequestOptions().centerCrop();
         }
         
     	 //通过不同的viewType创建不同的viewHolder
         @NonNull
         @Override
         public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
             if (viewType 
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值