滚动时 recylerview 中的位置发生变化

滚动时 recylerview 中的位置似乎发生了变化。


我想做的是这样的。


Adapter.java


@Override

public void onBindViewHolder(aViewHolder holder, int position) {


    if (position == 0) {

        holder.zeroIcon.setVisibility(View.VISIBLE);

    } else if (position == 1) {

        holder.oneIcon.setVisiblity(View.VISIBLE);

    } else {

        holder.otherIcon.setVisiblity(View.VISIBLE);

    }


    // Set text on each item

    ...

}



@Override

public int getItemCount() { return models.size(); }


public class aViewHolder extends RecyclerView.ViewHolder {


    private ImageView zeroIcon;

    private ImageView oneIcon;

    private ImageView otherIcon;



    public aViewHolder(View itemView) {

        super(itemView);

        zeroIcon = itemview.findViewById(...);

        ...

    }

}

我将这些图标的可见性设置为文件中的GONE默认值。xml


当我第一次看到 recylerview 时,图标会根据其位置按我的预期显示。


但是,当我向下滚动和向上滚动时,不正确的图标也会出现在不正确的位置。上下滚动时喜欢otherIcon显示在第一个和第二个项目上。向下滚动时,zeroIcon会oneIcon出现在其他一些项目上。


我怎样才能解决这个问题?


list_item.xml是这样的。


<RelativeLayout ...>


     <ImageView

         android:id="@+id/zero"

         android:visiblity="gone"

         android:background="@drawable/zero" />


     <ImageView

         android:id="@id/one"

         android:visiblity="gone"

         android:background="@drawable/one" />


     <ImageView

         android:id="@id/other"

         android:visiblity="gone"

         android:background="@drawable/other" />


呼啦一阵风
浏览 101回答 1
1回答

MYYA

修改成这样,if (position == 0) {&nbsp; &nbsp; holder.zeroIcon.setVisibility(View.VISIBLE);&nbsp; &nbsp; holder.otherIcon.setVisiblity(View.GONE);&nbsp; &nbsp; holder.oneIcon.setVisiblity(View.GONE);} else if (position == 1) {&nbsp; &nbsp; holder.oneIcon.setVisiblity(View.VISIBLE);&nbsp; &nbsp; holder.zeroIcon.setVisibility(View.GONE);&nbsp; &nbsp; holder.otherIcon.setVisiblity(View.GONE);} else {&nbsp; &nbsp; holder.otherIcon.setVisiblity(View.VISIBLE);&nbsp; &nbsp; holder.oneIcon.setVisiblity(View.GONE);&nbsp; &nbsp; holder.zeroIcon.setVisibility(View.GONE);}在RecyclerView更改项目时,您还应该管理其他视图。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java