当我向下和向上滚动RecyclerView时,Viewpager图像会消失



我想在RecyclerView内部使用ViewPager(用于instagram等多个图像(。但当我在RecyclerView上下滚动时,图像就会消失。我认为我的问题是在onBindViewHolder方法中创建一个新的Adapter。如何在ViewPagerAdapter中一次性创建适配器?有解决方案吗?

public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, final int position) {
switch (holder.getItemViewType()){

case 1:
{
final ViewHolderMultiple viewHolderMultiple=(ViewHolderMultiple)holder;
viewHolderMultiple.user_name.setText(list.get(position).getUsername());

Call<List<DetailPojo>> call = restApiClass.getImages(list.get(position).getId());
call.enqueue(new Callback<List<DetailPojo>>() {
@Override
public void onResponse(Call<List<DetailPojo>> call, Response<List<DetailPojo>> response) {
if (response.isSuccessful()) {
if (response.body() != null) {
imagesList = response.body();
postSliderAdapter = new PostSliderAdapter(imagesList, context); //I think my problem is here
viewHolderMultiple.postsCircleIndicator.setViewPager(viewHolderMultiple.postsViewPager);
Log.i("imageList",imagesList.size()+"");
}
}
}
@Override
public void onFailure(Call<List<LessonPostImagesDetailPojo>> call, Throwable t) {
Toast.makeText(context, "Connection Error", Toast.LENGTH_SHORT).show();
}
});
}
break;
default: break;
}
}

我将ViewPager高度从wrap_content更改为硬编码(400dp(,它就工作了。我试图根据图像大小动态更改ViewPager的高度,所以我的ViewPager大小是wrap_content。所以问题是全面的。但我不明白为什么。这太奇怪了。

Hi@Mehmet请使用此方法rv.getRecycledViewPool((.setMaxRecycledView(0,0(这可能会有所帮助。。有关方法描述,请参阅此链接。。

首先不要在onbindviewholder中调用api,在activity中创建一个单独的api函数,在bindviewhold中调用该函数如下:((MainActivity(上下文(.funGetData((;在调用api之前,请检查您的arraylist是否为空,然后调用api else显示先前加载的arraylist中的数据。在主活动中公开getdata,并在onsuccess方法中将adapter设置为viewpager。将开关更换为保持架上的if条件,不要忘记写下它的其他部分。做出这些改变后,请告诉我。

最新更新