Android进阶之RecyclerView
来源:互联网 发布:大华监控软件说明书 编辑:程序博客网 时间:2024/05/16 11:41
前言:
现在市面上越来越多的Android手机开始适配Android5.0和Android6.0系统,随着系统的适配,Android5.0和6.0提供的一些新的东西也慢慢的被人们接受。作为开发人员来讲,我们也需要实时的学习与更新自己的技术,今天我就来介绍一下Android5.0新提供的列表控件——RecyclerView:RecyclerView可以很完美的取代ListView,解决了ListView的一些优化方面的东西,提供了更多选择。接下来就来一起学习一下RecyclerView!
开始之前先来看张图:
图中图片加载是使用的Picasso框架加载,有兴趣的可以看看这http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0731/1639.html
第一步:RecyclerView是Android5.0提供的,在使用之前需要先导入design包
compile 'com.android.support:design:25.2.0'
第二步:使用RecyclerView:在XML文件中直接引用即可
<android.support.v7.widget.RecyclerView android:id="@+id/recycleview" android:layout_width="match_parent" android:layout_height="match_parent" />
第三步:初始化以及适配器:
在activity中对RecyclerView进行初始化
适配器的写法如下:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private Context context; private List<SubjectsInfo> datas; public MyAdapter(List<SubjectsInfo> datas, Context context) { this.datas = datas; this.context = context; } public void setDatas(List<SubjectsInfo> datas) { this.datas = datas; this.notifyDataSetChanged(); } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_view, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tvtitle.setText(datas.get(position).getTitle()); Picasso.with(context).load(datas.get(position).getImages().getLarge()).into(holder.ivmove); } @Override public int getItemCount() { return datas.size(); } protected class MyViewHolder extends RecyclerView.ViewHolder { ImageView ivmove; TextView tvtitle; public MyViewHolder(View itemView) { super(itemView); ivmove = (ImageView) itemView.findViewById(R.id.iv_movie); tvtitle = (TextView) itemView.findViewById(R.id.tv_title); } }}然后在activity中设置适配器,记住这个地方需要特别注意,RecyclerView需要我们自己去定义显示的样式通过setLayoutManager方法来进行相应的设置
RecyclerView提供三种可选择的显示样式:
一:StaggeredGridLayoutManage 瀑布流的样式
二:GridLayoutManager 网格式的样式
三:LayoutManage 线行的样式三种样式来供我们选择。
最后 :简单介绍一下RecyclerView的监听事件怎么处理
RecyclerView本身是没有提供item的单击长按类似的监听的,那我们需要怎么去实现呢?如下所示:
这里采用接口回调的方式来实现:首先实现一个接口
public interface OnItemClickListener{ void itemClick(View view,int position);}然后是先这个接口的set方法
public void setOnItemClickListener(OnItemClickListener onItemClickListener) { this.onItemClickListener = onItemClickListener;}
最后让itemView实现监听
itemView.setOnClickListener(this);在onclick方法中回传
@Overridepublic void onClick(View v) { if (onItemClickListener != null){ onItemClickListener.itemClick(v,getAdapterPosition()); }}最后一步真的是最后一步了,在activity中利用adapter来实现接口进行相应的逻辑
2 0
- Android进阶之RecyclerView
- Android进阶之RecyclerView使用
- Android进阶之路——RecyclerView(一)
- Android进阶之路——RecyclerView(二)
- Android进阶之通用RecyclerView适配器打造方法
- Android进阶之解决RecyclerView notifyItem闪屏问题
- Android进阶之解决RecyclerView notifyItem闪屏问题
- Android进阶之解决RecyclerView notifyItem闪屏问题
- Android进阶七:RecyclerView拖动滑动之ItemTouchHelper
- Android进阶知识点(RecyclerView)
- Android RecyclerView 基本用法&进阶
- Android进阶八:RecyclerView自动滚动
- RecyclerView进阶
- RecyclerView进阶
- Android学习之RecyclerView
- Android学习之RecyclerView
- Android学习之RecyclerView
- Android之RecyclerView使用
- 负载均衡器部署方式和工作原理
- MAMP+PhpStorm配置Xdebug
- 使用Java实现面向对象编程 第一章
- Android 登陆页面仿拉钩动效,你总会需要它!
- Android Context 上下文 你必须知道的一切
- Android进阶之RecyclerView
- 常用医学图像处理开源软件整理ing
- 《递归递推练习》E
- HDU4292 水题..
- 从modelfirst替换成codefirst
- 完成端口IOCP详解
- 微信端 html5 获取设备宽度失效
- 2014BIT程序设计06贪婪的你
- iptables数据包、连接标记模块MARK/CONNMARK使用