AndroidOfferKiller
AndroidOfferKiller copied to clipboard
RecyclerView卡頓的大招优化
RecyclerView的卡顿问题归根结底是滑动的卡顿,有一个场景是ViewHolder在滑动过程中创建ViewHolder导致的卡顿,那么问题来了,是否可以在CPU空闲的时候我们给RecyclerViewPool预制一些ViewHolder,这样在滑动过程中只会调用bind方法,而不会调用create方法。 `//需要提前缓存ViewHolder,解决滑动卡顿问题,骚操作 MessageQueue.IdleHandler idleHandler = new MessageQueue.IdleHandler() { @Override public boolean queueIdle() { new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < 10; i++) { final RecyclerView.ViewHolder viewHolder = mController.getAdapter().createViewHolder(mRecyclerView, PicRecoveryBaseModel.TYPE_ITEM); mRecyclerView.post(new Runnable() { @Override public void run() { mRecyclerView.getRecycledViewPool().putRecycledView(viewHolder); } });
}
for (int i = 0; i < 2; i++) {
final RecyclerView.ViewHolder viewHolder = mController.getAdapter().createViewHolder(mRecyclerView, PicRecoveryBaseModel.TYPE_GROUP);
mRecyclerView.post(new Runnable() {
@Override
public void run() {
mRecyclerView.getRecycledViewPool().putRecycledView(viewHolder);
}
});
}
}
}).start();
return false;
}
};`
太狠了 ,这招
确实挺狠的,会有什么隐患吗 另:排版看这蛋疼,看看 Markdown 语法
可以,空间换性能。学到了