Android之RecyclerView简单使用(一)
2016-02-02 10:58
627 查看
RecyclerView出来有一段时间了,每当问道关于ListView的问题时,小伙伴们就说为什么不用RecyclerView呢?后来研究了一下,发现这个控件很强大,快过年了,公司滴事情比较多,祝大家新春快乐,下面简单介绍它的使用方法,后面的使用年后更新,谢谢大家的支持。
RecyclerView可以说是ListView的升级版,虽说是升级版,但也有不完美滴地方,就是点击监听和长按监听需要自己写,优点就是给了用户很大的自定义空间。
使用Android Studio的用户需要添加依赖包,首先我们右击项目–>Open Module Settings然后选择如图:
然后我们点击右边那个绿色的加号
选择第一个,会出现下面这个对话框,我们输入RecyclerView进行搜索,选择如图那个依赖包:
这样RecyclerView的依赖包就导入了。
这样我们就可以在布局中这样写了:
我们用过ListView滴小伙伴都知道,ListView需要绑定Adapter,RecyclerView也不例外也需要适配器,不过它和ListView却不一样。来看一下吧!
细心地小伙伴会发现,它不在继承BaseAdapter而是继承RecyclerView.Adapter<类名.ViewHolder>,在里面我们需要把ViewHolder继承RecyclerView.ViewHolder然后实现其方法。
RecyclerView对ViewHolder进行了处理,使其就有很大滴解耦。在onCreateViewHolder方法里,返回的不在是View而是ViewHolder,这里它把View进行绑定到了ViewHolder,结果在onBindViewHolder里面处理。
在代码中我们需要这么处理:
RecyclerView可以设置显示方式通过布局管理器。
看一下效果图:
其实它还有其他功能,这里先不说了。如有疑问,可以给我留言!
友情链接
RecyclerView可以说是ListView的升级版,虽说是升级版,但也有不完美滴地方,就是点击监听和长按监听需要自己写,优点就是给了用户很大的自定义空间。
使用Android Studio的用户需要添加依赖包,首先我们右击项目–>Open Module Settings然后选择如图:
然后我们点击右边那个绿色的加号
选择第一个,会出现下面这个对话框,我们输入RecyclerView进行搜索,选择如图那个依赖包:
这样RecyclerView的依赖包就导入了。
这样我们就可以在布局中这样写了:
[code]<android.support.v7.widget.RecyclerView android:id="@+id/recycler" android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="none" />
我们用过ListView滴小伙伴都知道,ListView需要绑定Adapter,RecyclerView也不例外也需要适配器,不过它和ListView却不一样。来看一下吧!
[code]public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> { private List<Integer> mData; private Context mContext; public RecyclerViewAdapter(Context context, List<Integer> mData) { this.mContext = context; this.mData = mData; } @Override public RecyclerViewAdapter.ViewHolder onCreateViewHolder( ViewGroup parent, int viewType) { View view = LayoutInflater.from(mContext) .inflate(R.layout.recyclerview_item, parent, false); ViewHolder viewHolder = new ViewHolder(view); viewHolder.imageView = (ImageView) view.findViewById(R.id.img_picture); return viewHolder; } //设置数据 @Override public void onBindViewHolder( RecyclerViewAdapter.ViewHolder holder, int position) { holder.imageView.setImageResource(mData.get(position)); } @Override public int getItemCount() { return mData.size(); } public class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); } ImageView imageView; } }
细心地小伙伴会发现,它不在继承BaseAdapter而是继承RecyclerView.Adapter<类名.ViewHolder>,在里面我们需要把ViewHolder继承RecyclerView.ViewHolder然后实现其方法。
RecyclerView对ViewHolder进行了处理,使其就有很大滴解耦。在onCreateViewHolder方法里,返回的不在是View而是ViewHolder,这里它把View进行绑定到了ViewHolder,结果在onBindViewHolder里面处理。
在代码中我们需要这么处理:
[code]RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); //设置布局管理器 recyclerView.setLayoutManager(linearLayoutManager); //绑定适配器 RecyclerViewAdapter adapter = new RecyclerViewAdapter(mContext, mData); recyclerView.setAdapter(adapter);
RecyclerView可以设置显示方式通过布局管理器。
看一下效果图:
其实它还有其他功能,这里先不说了。如有疑问,可以给我留言!
友情链接
相关文章推荐
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRID
- Android Studio 关联项目软链接
- Android系统下的动态Dex加载
- Android使用DexClassLoader动态加载未安装Apk
- Android之代码设置selector
- Android学习-JAVA基础 (一)
- Android中Fragment添加容易遇到的问题
- Android两行代码搞定ViewPager的过渡动画
- Android禁止系统锁屏
- android拍照保存被压缩
- Android自定义权限
- Android获取CPU使用率的几种方式
- Android 使用MaterialDesign Android Library会出现的问题
- Android 中ScrollView 只显示一行的问题
- android平铺图片
- canvas画各种图形
- Android开发
- android selector设置button点击效果(详细)以及常见问题
- Android查询 每个进程的权限