RecyclerView简单使用
2017-08-01 15:05
225 查看
RecyclerView首先需要导入一个依赖包注意要V7的依赖.然后在XML文件里创建出RecyclerView
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
回到MainActivity的onCreate方法里初始化控件
//初始化控件
recycler_view = (RecyclerView) findViewById(R.id.recycler_view);
写一个填充数据的方法,这里先用假数据,一般我们都是在网络上求情数据
private void loadListData(){
//写一个List集合,集合的泛型写你的Bean类
List<DataBean> list = new ArrayList<>();
//写个循环添加数据
for(int i = 0; i < 10; i++ ){
//把Bean类实例化出来
DataBean bean = new DataBean();
//给Bean里的值赋值
bean.icon = R.drawable.mm;//假数据,自定义的图片(一般都在网上请求数据)
bean.name = "带你飞";//假数据,自己定义(一般都在网上请求数据)
//最后把数据装到集合里
list.add(bean);
}
//创建适配器
RecyclerAdapter adapter = new RecyclerAdapter(this,list);
//设置适配器
recycler_view.setAdapter(adapter);
//创建布局管理器,布局管理器所需参数,上下文
LinearLayoutManager linearLayout = new LinearLayoutManager(this);
//通过布局管理器,可以控制条目排序顺序 true是反向显示,false是正常显示
linearLayout.setReverseLayout(true);
//设置RecyclerView显示方向是水平还是垂直
linearLayout.setOrientation(LinearLayoutManager.HORIZONTAL);
//设置布局管理器,参数 linearLayout对象
recycler_view.setLayoutManager(linearLayout);
}
需要一个RecyclerView适配器,注意要指定泛型,一般我们就是类名的ViewHolder继承ViewHolder(内部已经实现了复用优化机制)
public class RecyclerAdapter extends RecyclerView.Adapter <RecyclerAdapter.ListViewHolder>{
//创建构造函数
private Context context;
private List<DataBean> list;
//构造方法,一般需要接受两个参数,上下文,集合参数(包含了我们所需要的数据)
public RecyclerAdapter(Context context,List<DataBean> list){
context=context;
list = list;
}
//创建ViewHolder,并把ViewHolder返回出去
public void setData(DataBean data){
//给ImageView设置图片数据
miv.setImageResource(data.icon);
//给Text设置文本信息
mtc.setText(data.name);
}
}
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
回到MainActivity的onCreate方法里初始化控件
//初始化控件
recycler_view = (RecyclerView) findViewById(R.id.recycler_view);
写一个填充数据的方法,这里先用假数据,一般我们都是在网络上求情数据
private void loadListData(){
//写一个List集合,集合的泛型写你的Bean类
List<DataBean> list = new ArrayList<>();
//写个循环添加数据
for(int i = 0; i < 10; i++ ){
//把Bean类实例化出来
DataBean bean = new DataBean();
//给Bean里的值赋值
bean.icon = R.drawable.mm;//假数据,自定义的图片(一般都在网上请求数据)
bean.name = "带你飞";//假数据,自己定义(一般都在网上请求数据)
//最后把数据装到集合里
list.add(bean);
}
//创建适配器
RecyclerAdapter adapter = new RecyclerAdapter(this,list);
//设置适配器
recycler_view.setAdapter(adapter);
//创建布局管理器,布局管理器所需参数,上下文
LinearLayoutManager linearLayout = new LinearLayoutManager(this);
//通过布局管理器,可以控制条目排序顺序 true是反向显示,false是正常显示
linearLayout.setReverseLayout(true);
//设置RecyclerView显示方向是水平还是垂直
linearLayout.setOrientation(LinearLayoutManager.HORIZONTAL);
//设置布局管理器,参数 linearLayout对象
recycler_view.setLayoutManager(linearLayout);
}
需要一个RecyclerView适配器,注意要指定泛型,一般我们就是类名的ViewHolder继承ViewHolder(内部已经实现了复用优化机制)
public class RecyclerAdapter extends RecyclerView.Adapter <RecyclerAdapter.ListViewHolder>{
//创建构造函数
private Context context;
private List<DataBean> list;
//构造方法,一般需要接受两个参数,上下文,集合参数(包含了我们所需要的数据)
public RecyclerAdapter(Context context,List<DataBean> list){
context=context;
list = list;
}
//创建ViewHolder,并把ViewHolder返回出去
@Override public ListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //转换一个View布局对象,决定了item的样子,1:上下文,2:加载的布局,3:一般设为空 View view = View.inflate(context, R.layout.item_list,null); //创建一个ListViewHolder对象 ListViewHolder listViewHolder = new ListViewHolder(view); //把ViewHolder对象传出去 return listViewHolder; }
//当ViewHolder跟数据绑定是回调 @Override public void onBindViewHolder(ListViewHolder holder, int position) { //从集合里拿对应item的数据对象 DataBean dataBean = datas.get(position); //给Holder里面的数据设置对象 holder.setData(dataBean); }
//根据集合长度定义item数量 @Override public int getItemCount() { //数据不为空,有多少条数据就加载多少条 if(datas != null && datas.size() > 0){ return datas.size(); } return 0; }
public class ListViewHolder extends RecyclerView.ViewHolder {
public ListViewHolder(View itemView) { super(itemView); //找控件初始化 miv = (ImageView) itemView.findViewById(R.id.item_iv); mtv = (TextView) itemView.findViewById(R.id.item_tv); }
public void setData(DataBean data){
//给ImageView设置图片数据
miv.setImageResource(data.icon);
//给Text设置文本信息
mtc.setText(data.name);
}
}
相关文章推荐
- RecyclerView 的简单使用
- Android之RecyclerView简单使用(二)
- andorid系列之RecyclerView简单使用
- RecyclerView简单使用
- android开发步步为营之85:RecyclerView简单使用
- Android新特性之RecyclerView的简单使用
- 简单的Android RecyclerView 使用小Demo
- RecyclerView 的简单使用步骤
- Android之RecyclerView简单使用(完结篇)
- RecyclerView的简单使用(1)
- FindJpg(4)-列表的卡顿优化和RecyclerView的简单使用
- Android RecyclerView 的简单使用
- RecyclerView的使用——简单例子
- Android RecyclerView使用简单介绍
- android5.0--RecyclerView和CardView结合使用的简单教程
- RecyclerView的简单使用
- RecyclerView的简单使用
- Android新特性之RecyclerView的简单使用
- RecyclerView的简单使用,实现下拉刷新、上拉加载
- RecyclerView的简单使用