【发布时间】:2020-06-03 13:06:18
【问题描述】:
我正在使用 Pierfrancesco Soffritti 的 YouTubePlayerView 实现一个水平回收视图,以显示一系列视频。 当我单击按钮时,我添加了一个全屏侦听器以全屏显示。 我试图做的是在全屏时隐藏所有recyclerview子项,然后在退出全屏时恢复视图。 以某种方式可能吗? 提前谢谢你
已编辑
这是我的 Adapter 类,我想在 OnBind 中选择我点击的 Recyclerview 项并隐藏它
公共类 VideoAdapter 扩展 RecyclerView.Adapter { private static final String TAG = "VideoAdapter";
private List<Video> mVideos;
private Lifecycle mLifecycle;
public VideoAdapter(List<Video> mVideos, Lifecycle mLifecycle) {
this.mVideos = mVideos;
this.mLifecycle = mLifecycle;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
YouTubePlayerView youTubePlayerView = (YouTubePlayerView) LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_videos, parent, false);
mLifecycle.addObserver(youTubePlayerView);
return new ViewHolder(youTubePlayerView);
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
holder.cueVideo(mVideos.get(position).getVideoId());
}
@Override
public int getItemCount() {
if(!(mVideos == null))
return mVideos.size();
return 0;
}
public class ViewHolder extends RecyclerView.ViewHolder{
private YouTubePlayerView youTubePlayerView;
private YouTubePlayer youTubePlayer;
private String currentVideoId;
ViewHolder(YouTubePlayerView playerView) {
super(playerView);
youTubePlayerView = playerView;
youTubePlayerView.addYouTubePlayerListener(new AbstractYouTubePlayerListener() {
@Override
public void onReady(@NonNull YouTubePlayer initializedYouTubePlayer) {
youTubePlayer = initializedYouTubePlayer;
youTubePlayer.cueVideo(currentVideoId, 0);
}
});
}
void cueVideo(String videoId) {
currentVideoId = videoId;
if(youTubePlayer == null)
return;
youTubePlayer.cueVideo(videoId, 0);
}
}
}
【问题讨论】:
-
您可以尝试添加一些代码来显示您已经完成的工作吗?
-
嗨,克里斯蒂,我编辑了我的帖子。谢谢
-
这很难做到,也很难维护......我建议你添加一个带有回调的监听器,该回调从适配器中获取点击行的信息;并且该侦听器可以在
RecyclerView之上打开一些片段/视图;甚至你可以隐藏RecyclerView -
是的,我基本上退出了啊
标签: android android-recyclerview