Android高级UI面试题汇总(含详细解析二十八)

本文介绍了Android面试中关于ListView和RecyclerView图片错位的常见问题,原因在于复用机制导致的显示错位。提供了解决方案一:使用tag预设图片,以及方案二:重写getItemId方法。附带了完整的2023年高级面试真题文档链接。

Android并发编程高级面试题汇总最全最细面试题讲解持续更新中👊👊
👀你想要的面试题这里都有👀
👇👇👇

一个ListView或者一个RecyclerView在显示新闻数据的时候,出现图片错位,可能的原因有哪些 & 如何解决?

这道题想考察什么?

考察同学对ListView和RecyclerView的错位问题是否知道。

考生应该如何回答

图片错位

什么是显示错位?
例如本来应该显示在item1的图片,由于上下滑动,导致显示在item10上面,这就是显示错位。
ListView和RecyclerView错位的原因是一致的,都是因为ListView和RecyclerView有复用的功能,才导致的错位显示。

如何解决

方案一:ListView和RecyclerView都是一致,直接设置一个tag,并预设一张图片。

// 给 ImageView 设置一个 tag
holder.img.setTag(imgUrl);
// 预设一个图片
holder.img.setImageResource(R.drawable.ic_launcher);

// 通过 tag 来防止图片错位
if (imageView.getTag() != null && imageView.getTag().equals(imageUrl)) {
    imageView.setImageBitmap(result);
}

方案二:RecyclerView的解决方案
重写下面方法,类似方案一的tag一样。

@Override
public long getItemId(int position) {
    return position;
}

由于面试题内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要2023年Android中高级最全面试真题答案 完整文档的可扫描下方卡片免费获取~

PS:(文末还有使用ChatGPT机器人小福利哦!!大家不要错过)

目录

img

第一章 Java方面

  • Java基础部分
  • Java集合
  • Java多线程
  • Java虚拟机

img

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值