Я работаю над приложением для Android.
Имеется окно recyclerView, в каждом элементе recyclerView есть ViewPager, который отображает изображение или видео на каждой странице. Все элементы мультимедиа загружаются с удаленного сервера в режиме реального времени.
При первой загрузке действия просмотрщик успешно загружает все страницы. Затем, при прокрутке вниз или вверх по представлению реселлера, бывают случаи, когда видовой пейджер не отображается внутри элемента просмотра рециркулятора.
Например, в пункте № 1 видовой пейджер показывает 5 изображений (5 страниц, на каждой странице изображение, прокручивая виджет влево или вправо), пункт № 2 показывает 3 изображения, элемент № 3 не показываетпейджер, потому что у него нет картинок. Каждый элемент занимает только высоту экрана устройства, затем прокручивая назад к первому элементу, я вижу, что на элементе № 1 не отображается видоискатель.
Если я перехожу к другому виду деятельности и затем возвращаюсь кПервое действие, просмотрщик снова работает.
Чего мне не хватает в моем коде, чтобы заставить его работать после прокрутки вверх и вниз в окне повторного просмотра?
Какую часть кода вам нужно взятьболее глубокий взгляд на источник проблемы?
РЕДАКТИРОВАТЬ
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
prefs = context.getSharedPreferences(MISDATOS, Context.MODE_PRIVATE);
editor = prefs.edit();
id_usuario = prefs.getString("id_usuario","");
PostsHomeLogeado getDataAdapter1 = PostsHomeLogeado.get(position);
final String id_post = getDataAdapter1.getid_post();
final String description_post = getDataAdapter1.getdescription_post();
final String id_spot= getDataAdapter1.getid_spot();
final String date_post = getDataAdapter1.getdate_post();
final String userid= getDataAdapter1.getuserid();
final String tipousuario= getDataAdapter1.gettipousuario();
final String username= getDataAdapter1.getusername();
final String sportid= getDataAdapter1.getsportid();
final String sporticon= getDataAdapter1.getsporticon();
final String spottypelogo= getDataAdapter1.getspottypelogo();
final String city_spot= getDataAdapter1.getcity_spot();
final String country_spot= getDataAdapter1.getcountry_spot();
final String latitudspot= getDataAdapter1.getlatitudspot();
final String longitudspot= getDataAdapter1.getlongitudspot();
final String spotshortname= getDataAdapter1.getspotshortname();
final String spotverificado= getDataAdapter1.getspotverificado();
final String profile_image= getDataAdapter1.getProfile_image();
final String spotverificadopor= getDataAdapter1.getspotverificadopor();
final String spotverificador= getDataAdapter1.getspotverificador();
final String sportsdelusuario= getDataAdapter1.getsportsdelusuario();
final String sportsdelusuariologos= getDataAdapter1.getsportsdelusuariologos();
final String mediafile= getDataAdapter1.getmediafile();
final String mediatype= getDataAdapter1.getmediatype();
if (spotverificado.equals("1")){
holder.txtVerified.setText(R.string.Verified);
}
if (spotverificado.equals("0")){
holder.txtVerified.setText(R.string.Not_verified);
holder.verified.setVisibility(View.GONE);
}
holder.sp1.setVisibility(View.GONE);
holder.sp2.setVisibility(View.GONE);
holder.sp3.setVisibility(View.GONE);
holder.sp4.setVisibility(View.GONE);
holder.sp5.setVisibility(View.GONE);
holder.sp6.setVisibility(View.GONE);
holder.sp7.setVisibility(View.GONE);
holder.sp8.setVisibility(View.GONE);
String mediapostfile []= mediafile.split(",");
String mediaposttype []= mediatype.split(",");
Hash_file_maps = new HashMap<String, String>();
for ( int w=0 ;w < mediapostfile.length;w++){
if (mediapostfile[w].equals("null")){
Hash_file_maps.put("vacio", url_postmedia+"noimage.jpg");
}
else {
if (mediaposttype[w].equals("2")){
Hash_file_maps.put("video."+mediapostfile[w], url_postmedia+"esvideo.png");
}
if (mediaposttype[w].equals("1")) {
Hash_file_maps.put("imagen."+mediapostfile[w], url_postmedia+mediapostfile[w]);
}
if (mediaposttype[w].equals("3")){
Hash_file_maps.put("youtube."+mediapostfile[w], url_postmedia+"youtubevideo.png");
}
}
}
for(String name : Hash_file_maps.keySet()){
}
String deportes []= sportsdelusuariologos.split(",");
for (int i = 0; i < deportes.length; i++) {
// Fetch the item, trim it and put it back in
deportes[i] = deportes[i].trim();
if (i==0){
holder.sp1.setVisibility(View.VISIBLE);
//loading the image
Glide.with(context)
.load(url_sports+deportes[i])
.into(holder.sp1);
}
if (i==1){
holder.sp2.setVisibility(View.VISIBLE);
//loading the image
Glide.with(context)
.load(url_sports+deportes[i])
.into(holder.sp2);
}
if (i==2){
holder.sp3.setVisibility(View.VISIBLE);
//loading the image
Glide.with(context)
.load(url_sports+deportes[i])
.into(holder.sp3);
}
if (i==3){
holder.sp4.setVisibility(View.VISIBLE);
//loading the image
Glide.with(context)
.load(url_sports+deportes[i])
.into(holder.sp4);
}
if (i==4){
holder.sp5.setVisibility(View.VISIBLE);
//loading the image
Glide.with(context)
.load(url_sports+deportes[i])
.into(holder.sp5);
}
if (i==5){
holder.sp6.setVisibility(View.VISIBLE);
//loading the image
Glide.with(context)
.load(url_sports+deportes[i])
.into(holder.sp6);
}
if (i==6){
holder.sp7.setVisibility(View.VISIBLE);
//loading the image
Glide.with(context)
.load(url_sports+deportes[i])
.into(holder.sp7);
}
if (i==7){
holder.sp8.setVisibility(View.VISIBLE);
//loading the image
Glide.with(context)
.load(url_sports+deportes[i])
.into(holder.sp8);
}
}
Glide.with(context)
.load(url_sports+sporticon)
.into(holder.sport_spot);
Glide.with(context)
.load(url_spot_types+spottypelogo)
.into(holder.tipo_spot);
holder.SubjectName.setText(getDataAdapter1.getusername());
holder.txtDate.setText(getDataAdapter1.getdate_post());
holder.txtDescription.setText(getDataAdapter1.getdescription_post());
holder.spot.setText(spotshortname+", "+city_spot+", "+country_spot);
holder.profile_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, profile_image, Toast.LENGTH_LONG).show();
}
});
holder.SubjectName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, profile_image, Toast.LENGTH_LONG).show();
}
});
String url = "https://.../usuarios/";
//loading the image
Glide.with(context)
.load(url+profile_image)
.into(holder.profile_image);
//fire
holder.fire.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
id_post_fire = id_post;
// Toast.makeText(context, "fire pulsado post post-user:"+id_post_fire+" "+id_usuario, Toast.LENGTH_LONG).show();
holder.fire.setImageResource(R.drawable.home_fire_desactivado);
update_fire_post();
}
});
//put user on spot
holder.fix_pin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
id_spot_put_user= id_post;
// Toast.makeText(context, "fire pulsado post post-user:"+id_post_fire+" "+id_usuario, Toast.LENGTH_LONG).show();
holder.fix_pin.setImageResource(R.drawable.home_checked);
put_user_on_spot();
}
});
holder.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
sliderImg = new ArrayList<>();
sendRequest( holder, position);
}