关于RecyclerView的简单应用教程
来源:互联网 发布:java socket框架 编辑:程序博客网 时间:2024/06/10 08:37
RecyclerView基本已经取代ListView,而且灵活度很高。要怎么去用它呢,其实主要就是把设配器(adapter)给写好就行了。
Adapter代码:
package com.example.administrator.myapplication;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.List;public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { List<Fruit> mlist; public class ViewHolder extends RecyclerView.ViewHolder{ // 利用RecyvlerView本身的ViewHoler方法进行控件的封装,使fruititem各个控件的实例化 TextView mID; TextView mName; public ViewHolder(View itemView) { super(itemView); //各控件的实例化 mID = (TextView) itemView.findViewById(R.id.mId); mName = (TextView) itemView.findViewById(R.id.mName); } } //将列表传进 public MyAdapter(List<Fruit> list){ mlist =list; } //加载整个layout布局,创建ViewHolder实例 @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruititem,parent,false); ViewHolder Holder = new ViewHolder(view); //把上面的fruititem整个布局中各个控件实例化 return Holder; } //onBindViewHolder就是填充数据的过程 @Override public void onBindViewHolder(ViewHolder holder, int position) { //此holder指上面ViewHolder通过继承父类所得。 //加载内容进控件 Fruit fruit= mlist.get(position); //获取list位置,下面开始为控件填充数据 holder.FruitName.setText(fruit.getMname()); holder.FruitID.setText(fruit.getmID()); } @Override public int getItemCount() { return mlist.size();//获取列表总长度 }}上面的Fruit是一个封装类,里面两个String值,一个是name,一个是Id。
而在布局R.layout.fruititem中为了简单,我直接用了两个TextView。一次可以类推。用其他控件都一样。
而在主函数中的代码,只需要添加:
List<Fruit> mfruitlist = new ArrayList<>();
initFruit(); //向list添加数据
RecyclerView mrecylerview = (RecyclerView) findViewById(R.id.mrecylerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
mrecylerview.setLayoutManager(layoutManager);
MyAdapter adapter = new MyAdapter(mfruitlist);
mrecylerview.setAdapter(adapter);
以上就是实现跟之前ListView同样的效果。
而RecyclerView还有新的拓展功能。能实现横向滚动。还有交错分布效果。
横向滚动只需要修改:
List<Fruit> mfruitlist = new ArrayList<>();
initFruit(); //向list添加数据
RecyclerView mrecylerview = (RecyclerView) findViewById(R.id.mrecylerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); //多添加这一项,就可以实现横向分布滚动
mrecylerview.setLayoutManager(layoutManager);
MyAdapter adapter = new MyAdapter(mfruitlist);
mrecylerview.setAdapter(adapter);
如图:
要实现交错分布效果,也是只需要修改Activity的代码换个LayoutManager:
就把LinearLayoutManager切掉。
StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(5,StaggeredGridLayoutManager.VERTICAL);//这里的5指的是把布局分为五纵列
mrecylerview.setLayoutManager(layoutManager);
如果把StaggeredGridLayoutManager里面的VERTICAL换成 HORIZONTAL
则这里的数字5就是把布局分成5横列,横向滚动数据。
效果如图:
Vertical Horizontal
0 0
- 关于RecyclerView的简单应用教程
- recyclerview的简单应用
- Recyclerview的简单应用
- recyclerview的适配器简单应用
- RecyclerView的简单应用2,仿gridview
- RecyclerView的简单应用3:瀑布流
- RecyclerView的瀑布流简单应用
- RecyclerView的瀑布流简单应用
- android5.0--RecyclerView和CardView结合使用的简单教程
- 安卓RecyclerView与DrawerLayout的简单应用
- Android UI控件之RecyclerView的简单应用
- 第一篇博客,简单介绍RecyclerView的应用
- android复习路之RecyclerView简单的应用
- RecyclerView局部刷新的应用场景简单分析
- eMMC应用教程:关于RPMB的应用
- eMMC应用教程:关于RPMB的应用
- RecyclerView的其他应用
- recyclerview的应用分析
- 判断二叉树是否为平衡树
- 利用c语言的qsort与bsearch实现排序与查找
- TCP/IP四层模型简述
- 【PHP】流程控制
- Java语言学习总结-1
- 关于RecyclerView的简单应用教程
- 异常控制流
- Android开发——Bluetooth(二)
- Java中文转拼音
- Linux网络配置
- 循环语句(for循环,while循环,do-while循环)
- git命令之git mergetool vi非正常退出.swp删除不了的问题
- VS2010-MFC下在状态栏中添加进度条用于显示当前文件的读取进度
- ubuntu中ssh-server的安装与开机启动