解决RecyclerView复用导致图片错位的问题

继上一篇博客之后我发现在百度搜索排名第二条,想想还有些小激动呢。咳咳咳~~~,废话少说,赶紧把我遇到的一个问题记录下来,以便别人采坑或者自己在采坑。

问题描述:从服务端拿到一个type来展示来展示本地不同type的图片,但是我发现了一个错位问题,代码如下:

switch (type){
    case Constants.TYPE_1:
        holder.iv_rotate.setImageResource(R.mipmap.icon_type_1);
        break;
    case Constants.TYPE_2:
        holder.iv_rotate.setImageResource(R.mipmap.icon_type_2);
        break;
    case Constants.TYPE_3:
        holder.iv_rotate.setImageResource(R.mipmap.icon_type_3);
        break;
    default:
        break;
}

xml:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:gravity="center_vertical"
    android:layout_marginLeft="@dimen/dip_16">

    <ImageView
        android:id="@+id/iv_header"
        android:layout_width="@dimen/dip_36"
        android:layout_height="@dimen/dip_36"
        android:src="@drawable/header0"/>
</LinearLayout>

就这么一代码,然后发生了错位的现象,是不是很奇怪呢?

经过我的多次试验和排查,最后发现服务端传过来的type超出了switch的界定范围,这时候因为没有明确的给iv_header赋值,导致iv_header的状态没有更新,所以就产生了错位的现象。说到这里估计大家也就理解原因了,如果有相同的问题您就采纳,没有也不要人身攻击哈。。。感谢大家观看!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值