使用Viewpager2的“图像和视频”滑块,一些视频似乎在滑动中丢失

问题描述

我正在使用图像和视频滑块。我可以将图像和视频加载到viewpager 2中。但是现在,图像可以正常工作,但是在滑动视频过程中有时只会出现。.否则,下一张图像将取代它的位置。.怎么了?请..我是新手。.

 public void onBindViewHolder(@NonNull final SlideViewHolder holder,int position) {
        //holder.linearLayout.removeAllViews();

        Log.d("CHKck",position + " " + getItemCount());
        StatusModel statusModel = itemList.get(position);
        File file = statusModel.getFile();
        Log.d("CHKfileadapt",String.valueOf(file) + " " + position);
        if (file.exists()) {
            if (statusModel.isVideo) {
                holder.slideVideo.setVisibility(View.VISIBLE);
                holder.slideVideo.setVideoPath(file.getAbsolutePath());
                MediaController mediaController = new MediaController(context);
                mediaController.setAnchorView(holder.slideVideo);
                holder.slideVideo.setMediaController(mediaController);
                holder.slideVideo.setonPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mp) {
                        mp.setLooping(true);
                        holder.slideVideo.start();
                    }
                });
            } else {
                holder.slideImage.setVisibility(View.VISIBLE);
                Glide.with(context).load(file).into(holder.slideImage);
            }
        }
    }

解决方法

之所以发生这种情况,是因为我一直在onBindViewHolder()中添加视图,并且从未删除已删除的前一个视图。这背后的原因是RecyclerView.Adapter重复使用同一视图持有者。这是我在这里从ADM先生那里得到的先前建议。所以我在onbindingviewholder中初始化了所有视图。 >

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...