初入 android 的萌新向大神请教一下,弄了一个水平滑动的 recyclerview 问题是加载过的图片,往回之后又看过它重新加载了,怎么让它不加载啊 我直接上部分代码,直观点,用的 databinding 加载数据和 adapter
@BindingAdapter({"bind:imageUrl","bind:error"})
public static void loadImage(ImageView view, String url, Drawable error){
                          Glide.with(view.getContext()).load(UriUtil.completeImgUrl(url)).error(error).into(view);
}
@BindingAdapter("bind:data")
public static void setData(RecyclerView recyclerView, List<ItemData> data){
    setHorizontalRVdata(recyclerView, data);
}
下面是 adapter 部分
    @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    B binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), getLayoutId(viewType), parent, false);
    return new BaseViewHolder(binding.getRoot());
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    B binding = DataBindingUtil.getBinding(holder.itemView);
    onBindItem(binding, items.get(position));
}
|  |      1sty      2018-02-04 23:42:01 +08:00 via Android 如果你有 10000 个条目,不回收吗 | 
|      2CFO      2018-02-05 01:34:49 +08:00 via Android 你知道 recycler 是什么意思吗? | 
|      3lcorange      2018-02-05 01:47:44 +08:00  1 recycle 被回收是无法避免的,要不内存早晚爆掉,如果为了体验好些,可以多缓存几个页面,回收的慢些就好了,但是要控制好大小,小心 oom recyclerView.setItemViewCacheSize(10); | 
|  |      40x8192dd      2018-02-05 01:54:22 +08:00 via Android  1 重新加载是不可避免的,也是应该的,如果重新加载图片在 UI 上显示效果不好或者有很明显的加载过程,你应该考虑的是优化加载速度比如降低图片大小,而不是不加载 | 
|  |      5gavin6liu      2018-02-05 17:08:28 +08:00 看代码,没啥问题啊,Glide 会自动缓存图片到内存可以直接显示,你是想 Glide 加载已经存在的图片,没有 transition 动画? | 
|      6Jimjay OP @tsunamibad 在图片的大小方面,我已经选择最小到能接受的程度了,能否具体讲一下优化速度的方法,而且因为我没有设置 placeholder, 还有 image view 下面还有 text views, 每次往回滑 text view 都被顶到最上,重新加载后又顶下来,视觉效果不好,我想有没有解决的办法,具体参考案例 Google play 商店,我试过,它没有我这种情况,不知是否用 recyclerview 实现的 | 
|      7Jimjay OP @gavin6liu 我的困扰是,image view 下面还有一个 textview 作标题,组成一个 item, 然后我每次往回滑,它明明加载过的图片还要重新加载一遍,然后下面标题别顶上去,等图片加载完又恢复原位,而这个视觉体验并不好,有没有解决的办法 | 
|      8Jimjay OP @lcorange 不知 glide 是否提供修改回收数量的接口,不要让 items 出了屏幕就回收 | 
|  |      10V2exUser      2018-02-09 17:47:03 +08:00 recy 就是拿已经出了屏幕的 itemView 复用啊,再进入屏幕当然要重新填值。 | 
|  |      11V2exUser      2018-02-09 17:48:49 +08:00 真要不复用的话,外面放一个水平的 scrollview,这样内部的 recy 的 item 会一次性出来。 |