RecyclerView的简单使用
来源:互联网 发布:有没有真的网络兼职 编辑:程序博客网 时间:2024/06/08 19:23
RecyclerView是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓.
1.添加依赖
compile 'com.android.support:recyclerview-v7:23.4.0'
2.RecyclerView的适配器 自己设置Adapter,ViewHolder和点击事件
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{ private Context context; private ArrayList<String> data; private View itemView; private OnItemClickListener onItemClickListener; private OnItemLongClickListener onItemLongClickListener; //条目的点击事件 public interface OnItemClickListener{ void onItemClick(View view,int position); } //条目的长按点击事件 public interface OnItemLongClickListener{ void onItemLongClick(View view,int position); } //对外提供的方法 public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener=onItemClickListener; } public void setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener){ this.onItemLongClickListener=onItemLongClickListener; } public MyAdapter(Context context, ArrayList<String> data) { this.context=context; this.data=data; } //打印布局 返回ViewHolder @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { itemView = View.inflate(context,R.layout.list_item,null); final ViewHolder holder = new ViewHolder(itemView); //条目点击 itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int position = holder.getLayoutPosition(); //注册点击监听 if(onItemClickListener!=null){ onItemClickListener.onItemClick(v,position); } } }); //条目长按 itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { int position = holder.getLayoutPosition(); if(onItemLongClickListener!=null){ onItemLongClickListener.onItemLongClick(v,position); } //事件消费,不继续执行 return true; } }); return holder; } //绑定 赋值 @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.tv.setText(data.get(position)); } //返回条目数 @Override public int getItemCount() { return data.size(); } //定义viewHolder继承自带的viewHolder class ViewHolder extends RecyclerView.ViewHolder{ private TextView tv; public ViewHolder(View itemView) { super(itemView); tv = (TextView) itemView.findViewById(R.id.tv); } }}
3.MainAcitivity中
public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private ArrayList<String> data = new ArrayList<>(); private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { recyclerView = (RecyclerView) findViewById(R.id.recyclerview); for(int i = 0;i<100;i++){ data.add("content_"+i); } //设置布局效果 //recyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this,3,GridLayoutManager.VERTICAL,false)); adapter = new MyAdapter(MainActivity.this,data); recyclerView.setAdapter(adapter); //瀑布流效果 recyclerView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL)); adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() { @Override public void onItemClick(View view, int position) { Toast.makeText(MainActivity.this, "点击条目"+position, Toast.LENGTH_SHORT).show(); } }); adapter.setOnItemLongClickListener(new MyAdapter.OnItemLongClickListener() { @Override public void onItemLongClick(View view, int position) { Toast.makeText(MainActivity.this, "长按条目"+position, Toast.LENGTH_SHORT).show(); } }); }}
0 0
- RecyclerView的简单使用
- RecyclerView 的简单使用
- recyclerview的简单使用
- Recyclerview的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView的简单使用
- RecyclerView 的简单使用
- Recyclerview的简单使用
- RecyclerView的简单使用
- swift 判断是否是模拟器
- angular2的模块语法
- C++实验5——数组分离
- SCORM技术总结及题库应用
- GreenDao 3.2版本入门 以及实例讲解
- RecyclerView的简单使用
- Spring知识点概述
- 保留两位小数
- java-IO流3(缓冲输入字节流)
- 多校联合集训 字符串“水”题
- java 数值常量默认类型
- 将输入流转换成字符串
- Python做全国房价分析——经纬度的转换
- SQL语句的硬解析和软解析