1

我正在开发和应用程序,应该在 recyclerview 中显示用户 instagram 帖子......我正确获取了所有数据,但是在我滚动我的 recyclerview 图片后,我的图片变得一团糟,一张图片显示了两次......以及我列表中的其他混乱。这是我在 recyclerview 中的 onbind 视图持有者扩展了 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>
4

1 回答 1

0

删除绑定支架中的最终位置,

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

int adapterPos=holder.getAdapterPosition();

Picasso.with(上下文)。

    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

于 2017-01-24T13:49:52.030 回答