RecyclerView 图片错位空白的问题

2018-08-26 00:18:04

这几天一直在研究我做的一个功能,牵扯到了recycleview,图片显示错位,空白的问题。


关于RecyclerView中ViewHolder重用机制理解(解决图片错乱和闪烁问题)

我参考了下面这个文章,写的真是好啊。


RecyclerView中ViewHolder重用机制理解(解决图片错乱和闪烁问题)


Android学习之-RecyclerView带刺的玫瑰


下面说一下我的实际理解与操作。


1.图片错位的原因是因为图片异步记载返回去展示出的问题。图片空白,是item刷新,请求图片时间上的问题。

2。viewHolder.setIsRecyclable(false); 就没有tag,不设置 就有tag,但是有没有没啥区别

设置tag,

tag只能设置只能限制并准确的实现图片展示在哪个元素上,这个类似于js的异步操作,能确定这个元素对不对。

但是并不能根据tag来判断我当前的holder以及holder下面的子元素是否已经加载了图片,因为holder等都是服用过来的,tag也复用过来了。所以这个只能确保图片不错位,但是不能保证图片快速加载图片空白的问题。

然后我又尝试用map来保存图片加载过的状态,然后加载并正确的图片item不再去刷新他,不知道为什么这样更错位了。我又用map保留了图片的宽度,不再去根据图片获得宽高,结果还是有空白时间,这个真是没办法。


homeAdapter.setHasStableIds(true);


     @Override

        public long getItemId(int position) {

            return position;

        }


我也尝试了给adapter设置这个,依然还需要重新刷新item,真不知道为啥。

return 1。 或者设置,这样倒是不刷新了,但是图片都成了一个图片。



2、tips1:如果你调用了:viewHolder.setIsRecyclable(false);那么这个Item的onViewRecycled将永远不会调用。


虽然每个holder不复用了,但是每次holder都是新的 ,所以也不会有tag。无语



总之错位能解决,空白我是没解决,就先这样吧,等看到开源的解决掉的开源工程的时候在说吧,研究了一天。

  • 2019-10-15 05:53:20

    xUtils 里的DbUtils使用心得

    使用xUtils做Android数据库开发非常简便和得心应手,而且它本身还支持很多查询功能,比如一对多,select count和自定义sql查询等,并且支持事务(默认关闭) 下面是官方sample给的代码和我的一些使用心得 首先是两个实体类,对应两张表,这两张表中有一对多的关系

  • 2019-10-15 09:18:48

    腾讯 Android 面试笔试总结

    Activity中的几种启动模式 Android消息机制 IntentService 事件分发 Android性能优化、内存优化 内存优化 View的绘制 Eventbus原理 Rxjava的操作符有哪些,说说他们的作用 线程锁 锁方法和类对象啥的有啥区别 AsyncTask原理 说说MVP和MVVM的特点 Android中用到的观察者模式有哪些地方 说说google新出的Lifecycle框架 okhttp原理 Retrofit原理 RecyclerView源码、缓存分析 Binder机制 Android Jetpack Kotlin Activity中的几种启动模式

  • 2019-10-15 09:20:49

    SpringBoot注解梳理

    @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。 @Configuration 等同于spring的XML配置文件;使用Java代码可以检查类型安全。 @EnableAutoConfiguration 自动配置。 @ComponentScan 组件扫描,可自动发现和装配一些Bean。 @Component可配合CommandLineRunner使用,在程序启动后执行一些基础任务。 @RestController注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。 @Autowired自动导入。 @PathVariable获取参数。 @JsonBackReference解决嵌套外链问题。 @RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。

  • 2019-10-15 09:52:00

    动图解释递归,按值传递和按引用传递的区别,线性查找和二分查找,二叉查找树

    对于大部分人,数据结构一直是一个短板,当然我也是,不是学不会,而是容易忘,就拿最简单的排序来说吧,当时学习的时候明明已经弄得很清楚了,过了一段时间不用又忘记了,还要重新再看一遍,不知道有多少小伙伴和我有一样的烦恼。今天让我们用用动图的方式学习一下数据结构中的递归和二分查找吧,这种讲解方式非常生动,而且非常容易记住和理解。