RecyclerView使用 及 滑动时加载图片优化方案,GitHub上标星13k的《Android面试突击版》
setContentView(R.layout.my_activity);
mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
// improve performance if you know that changes in content do not change the size of the RecyclerView
//如果确定每个item的内容不会改变RecyclerView的大小,设置这个选项可以提高性能
mRecyclerView.setHasFixedSize(true);
// use a linear layout manager
//创建默认的线性LayoutManager
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
// specify an adapter (see also next example)
//设置Adapter
mAdapter = new MyAdapter(myDataset);
mRecyclerView.setAdapter(mAdapter);
}
…
}
LayoutManager:用来确定每一个item如何进行排列摆放,何时展示和隐藏。提供默认的动画效果,你也可以定义你自己的LayoutManager和添加删除动画。在回收或重用一个View时,LayoutManager会向适配器请求新的数据来替换旧的数据,这种机制避免了创建过多的View和频繁的调用findViewById方法。
2.MyAdapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private String[] mDataset;
// Provide a reference to the type of views that you are using (custom viewholder)
//自定义的ViewHolder,持有每个Item的的所有界面元素
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView;
public ViewHolder(TextView v) {
super(v);
mTextView = v;
}
}
// Provide a suitable constructor (depends on the kind of dataset)
public MyAdapter(String[] myDataset) {
mDataset = myDataset;
}
// Create new views (invoked by the layout manager)
//创建新View,被LayoutManager调用
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
// create a new view
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_text_view, parent, false);
// set the view’s size, margins, paddings and layout parameters
…
ViewHolder vh = new ViewHolder(v);
return vh;
}
// Replace the contents of a view (invoked by the layout manager)
//将数据与界面进行绑定
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// - get element from your dataset at this position
// - replace the contents of the view with that element
holder.mTextView.setText(mDataset[position]);
}
// Return the size of your dataset (invoked by the layout manager)
//这个就不解释了
@Override
public int getItemCount() {
return mDatas
RecyclerView使用 及 滑动时加载图片优化方案,GitHub上标星13k的《Android面试突击版》相关推荐
- RecyclerView使用 及 滑动时加载图片优化方案
RecyclerView使用 及 滑动时加载图片优化方案 简述 本篇博文主要给大家分享关于RecyclerView控件的使用及通过继承RecyclerView来实现滑动时加载图片的优化方案,也同样能解 ...
- Android RecyclerView使用 及 滑动时加载图片优化方案
1.控制线程数量 + 数据分页加载2.重写onScrollStateChanged方法 这个我们后面再谈,下面先来看看RecyclerView控件的使用及我们为什么选择使用它 RecyclerView ...
- RecyclerView使用 及 滑动时加载图片优化方案,android应用程序开发语言
// Provide a reference to the type of views that you are using (custom viewholder) //自定义的ViewHolder, ...
- android listview 只加载显示的图片大小,Android ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)...
最近在做ListView分页显示,其中包括图片 和文字(先下载解析文字内容,再异步加载图片)发现每次点击下一页后,文字内容加载完毕,马上向下滑动,由于这时后台在用线程池异步下载图片,我每页有20条,也 ...
- Android之 ListView滑动时不加载图片
listview加载图片优化的功能, 在我们使用新浪微博的时候,细心的同学一定发现了,在滑动的过程中,图片是没有被加载的, 而是在滑动停止时,才加载图片了. 我们今天就做一个这样的效果吧. 我们先考虑 ...
- Unity大场景数据加载及优化方案
前段时间,有几个虚拟仿真公司跟我请教关于大地形的加载优化问题,它们使用的引擎都是自己研发的,引擎对于开发者来说,大同小异,它们的基本构造是一样的,关键是在于解决问题的方法,正是基于这个前提写了这个课程 ...
- LIstview滑动时不加载图片,停止时加载!
//参照 http://blog.csdn.net/yy1300326388/article/details/45153813 public class CarWashDistanceAdapter ...
- SDWebImage的坑,无网络时加载图片失败,有网络后依然无法加载显示的问题
网上查找得知 当SDWebImage 在加载图片的时候 我用的是- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *) ...
- 游戏UI动态加载图片优化
说到UI优化,很多人对其并不以为意,UI的制作无非使用UGUI或者NGUI.UI优化主要是针对图集,还有一些依赖项的优化,针对的是内存优化,上面这些都是关于静态UI的优化,这个是作为程序员都要经历的阶 ...
最新文章
- 分布式存储fastdfs安装使用
- 将jpg图像转换成yuv420p格式
- laravel 查询
- wxWidgets:wxDataViewCtrl类用法
- oracle复习笔记
- 前端学习(2978):上午回顾
- jwt 私钥_什么是 JSON Web Token(JWT)
- LeetCode(118)——杨辉三角(JavaScript)
- 【可行】adb修改手机代理方式
- mybatis 的 dao 接口跟 xml 文件里面的 sql 是如何建立关系的?
- php对接建行h5网页支付
- Flask知识点串烧(三)--- JInjia2模板
- 怎么解决pdf乱码问题呢?
- blog推荐 - 左岸读书
- 大数据数据湖之hudi
- 「CG原画插画教程」初学者如何练习人体动态结构?
- Android社招最全面试题,成功拿下大厂offer
- 云计算机特点的是什么意思,云计算是什么?有哪些特点?
- 洛谷 P4725 【模板】多项式对数函数 ntt
- 代码编码格式,文件格式批量转换工具