RecyclerView,一个代替ListView的控件,所以和ListView一样,也可以设置多布局来给整个的界面带来多种的布局效果,让整个页面看起来比较好看。
同时在我们的生活中也有很多的App都是用着多布局来实现很多的效果的,例如qq,微信的聊天界面,淘宝的主页,包括QQ看点,新闻界面的广告效果都可以使用RecyclerView的多布局来实现,下面就让我们来学习一下RecyclerView的多布局的实现。
首先在布局文件里先写RecyclerView
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
之后在Activity给实例化出来
然后我们需要写适配器
public class ChatRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
//多布局必须添加的方法
@Override
public int getItemViewType(int position) {
return list_chat.get(position).getType();//判断不同布局的一个判断值,int类型的
}
//实现三个方法
//写完上面的方法后,i就变成了判断多布局的条件了,所以在这个方法里根据类型不同,返回不同的布局文件
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return null;
}
//在该方法内,根据类型不同来写不同布局文件的布局
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
}
//返回数据源的长度
public int getItemCount() {
return 0;
}
}
在适配里由于布局文件的不同,所以每一个类都要继承RecyclerView.ViewHolder,这样才可以在适配器里调用该布局文件。
之后,把适配器以及数据源设置到RecyclerView上,就可以根据内容的不同,实现不同的页面效果了。