【问题标题】:recyclerview android mix data pictures after scroll滚动后recyclerview android混合数据图片
【发布时间】:2017-01-24 13:38:53
【问题描述】:

我正在开发和应用程序应该在 recyclerview 中向用户显示 instagram 帖子...我正确获取所有数据但是在我滚动后我的 recyclerview 图片变得一团糟,一张图片显示两次...以及我列表中的其他混乱. 这是我在 recyclerview 中的 onbind View holder extends RecyclerView.Adapter :

   @Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {




Picasso.with(context).

        load(imageThumbList.get(position)

        ).

        into(ivimage);

igetPositionImage.getPosition(position);




        /*imageLoader.DisplayImage(imageThumbList.get(position), ivimage);*/
count_like.setText(likeCounts.get(position));

它在我的片段中调用了回收视图:

 private void setImageGridAdapter() {
    recyclerView = (RecyclerView) getView().findViewById(R.id.recycler_view);
    RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(getActivity(),3);
    recyclerView.setLayoutManager(mLayoutManager);

    recyclerView.addItemDecoration(new GridSpacingItemDecoration(1, dpToPx(1), true));
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    RecycleListAdapter recycleListAdapter = new RecycleListAdapter(getActivity(),imageThumbList , likeCounts ,LikeGetterF.this);
    recyclerView.setAdapter(recycleListAdapter);
   Paginate.with(recyclerView , callbacks)
            .setLoadingTriggerThreshold(2).
                    addLoadingListItem(true).
                    setLoadingListItemCreator(new RecycleListAdapter(getActivity(),imageThumbList,likeCounts,LikeGetterF.this))
            .setLoadingListItemSpanSizeLookup(new RecycleListAdapter(getActivity(),imageThumbList,likeCounts,LikeGetterF.this))
            .build();

    //gvAllImages.setAdapter(new MyGridListAdapter(context,imageThumbList));
}

还有我的 xml 代码:

> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/all_media_files"
    >

    <!-- <ListView -->
    <!-- android:id="@+id/lvImages" -->
    <!-- android:layout_width="fill_parent" -->
    <!-- android:layout_height="wrap_content" > -->
    <!-- </ListView> -->

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:background="#AFAFAFAF"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="true"
        android:scrollbars="horizontal" />

</LinearLayout>

还有我的物品适配器 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="20dp"
    >



        <FrameLayout
            android:layout_width="100dp"
            android:layout_height="100dp"
            >

        <ImageView
            android:id="@+id/ivImage"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:clickable="true"
            android:scaleType="fitCenter"
            android:src="@drawable/profile"
            />


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:layout_gravity="bottom"
                    android:background="#AFAFAFAF"
                    >

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:src="@drawable/like_red"
                    android:id="@+id/like_img"
                    />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom|right"
                    android:text="0"
                    android:gravity="right"
                    android:textColor="@color/textColorPrimary"
                    android:textSize="@dimen/buttonSizes"
                    android:id="@+id/like_count"

                    />

                </LinearLayout>
        </FrameLayout>
        <!-- android:background="@drawable/char_02"-->



</LinearLayout>

【问题讨论】:

    标签: android xml android-layout android-recyclerview recyclerview-layout


    【解决方案1】:

    删除绑定持有者中的最终位置,

    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

    int adapterPos=holder.getAdapterPosition();

    毕加索.with(context).

        load(imageThumbList.get(adapterPos)
    
        ).
    
        into(ivimage);
    

    igetPositionImage.getPosition(位置);

    holder.setIsRecyclable(false);

        /*imageLoader.DisplayImage(imageThumbList.get(position), ivimage);*/
    

    count_like.setText(likeCounts.get(position));

    并在 bindView 持有者的任何地方使用adapterPos

    【讨论】:

      猜你喜欢
      • 2015-06-24
      • 2013-04-24
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多