У меня есть действие, содержащее 2 или 3 фрагмента в одном из этих фрагментов. Я хочу показать видео с YouTube в представлении утилизатора.
1.
когда я пытаюсь получить доступ к YouTubePlayerFragment, находящемуся в макете элемента переработчика, я получаю эту ошибку
"Type parameter T has incompatible upper bounds: View YouTubePlayerFragment"
public static class MyVideoViewHolder extends RecyclerView.ViewHolder{
YouTubePlayerFragment youTubePlayerFragment;
public MyVideoViewHolder(View itemView) {
super(itemView);
youTubePlayerFragment=itemView.findViewById(R.id.youtube_player_fragment);
}
}
я не могу получить доступ к фрагменту с помощью findViewById и не могу получить контекст здесь, я не знаю, как вызватьfindFragmentById здесь, если это будет работать.
2.
другое решение, которое я попробовал, использует frameLayout внутри макета элемента повторного просмотра и затем заменяет фрагмент внутри этого framelayout, но этотакже не работает, я получаю
"No view found for id 0x7f070096 for fragment YouTubePlayerFragment"
public void onBindViewHolder(@NonNull MyVideoViewHolder holder, final int position) {
YouTubePlayerFragment youTubePlayerFragment=YouTubePlayerFragment.newInstance();
((Activity)mContext).getFragmentManager().beginTransaction().replace(holder.youtubePlayerFrameLayout.getId(),youTubePlayerFragment).commit();
youTubePlayerFragment.initialize(YoutubePlayerConfig.API_KEY, new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
youTubePlayer.cueVideo(videoListDataArrayList.get(position));
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
Log.d(TAG,"initilization fail");
}
});