问题描述
我正在使用图像和视频滑块。我可以将图像和视频加载到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中初始化了所有视图。 >