public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position) { RecommendationsViewHolder v = holder as RecommendationsViewHolder; v.ShowMoreButton.Click += (sender, e) => { if (Blocks[position].Playlists?.Count > 0) { //TODO: GOTO PLAYLISTS FRAGMENT (//TODO CREATE PLAYLISTS GRID FRAGMENT) var frag = new RecommendationPlaylistsFragment(); frag.playlists = PlaylistsService.CovertToPlaylistFiles(this.Blocks[position].Playlists); Parent.Activity.FindViewById <TextView>(Resource.Id.titlebar_title).Text = Blocks[position].Title; Parent.FragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, frag).Commit(); } else { var frag = new RecommendationTracksFragment(); frag.tracks = MusicService.ConvertToAudioFile(this.Blocks[position].Tracks); Parent.Activity.FindViewById <TextView>(Resource.Id.titlebar_title).Text = Blocks[position].Title; Parent.FragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, frag).Commit(); } Toast.MakeText(Application.Context, $"Произошел кликинг по {this.Blocks[position].Title}", ToastLength.Long).Show(); }; //Установка заголовка согласно нужной рекомендации v.Caption.Text = this.Blocks[position].Title; v.SetItemClickListener(this); //вот прям тут да между этими комментами int counter = 0; if (this.Blocks[position].Playlists?.Count > 0) { var plistsInBlock = PlaylistsService.CovertToPlaylistFiles(this.Blocks[position].Playlists.Take(2).ToList()); var adapter = new PlaylistAdapter(plistsInBlock); adapter.ItemClick += AdapterOnPlaylistClick; v.List.SetAdapter(adapter); v.List.SetLayoutManager(new LinearLayoutManager(Application.Context, LinearLayoutManager.Horizontal, false)); v.List.Clickable = true; } else { List <AudioFile> tracksInBlock = new List <AudioFile>(); var tracks_nonvk = MusicService.ConvertToAudioFile(this.Blocks[position].Tracks); foreach (var track in tracks_nonvk) { if (counter > 1) { break; } tracksInBlock.Add(track); counter++; } var adapter = new TrackAdapter(tracksInBlock, this.Blocks[position].Title); adapter.ItemInBlockClick += AdapterOnItemClick; v.List.SetAdapter(adapter); v.List.SetLayoutManager(new LinearLayoutManager(Application.Context, LinearLayoutManager.Vertical, false)); v.List.Clickable = true; } this.ViewHolds.Add(v); }
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.From(parent.Context). Inflate(Resource.Layout.RecommendationLayout, parent, false); RecommendationsViewHolder v = new RecommendationsViewHolder(itemView); return(v); }