protected virtual void OnBindDetailsViewHolder(RecyclerView.ViewHolder holder, View detailsContent, int position) { var visibility = ExpandedPosition == position ? ViewStates.Visible : ViewStates.Gone; if (detailsContent != null) { detailsContent.Visibility = visibility; } if (visibility == ViewStates.Visible) { var e = new WeatherDailyItemEventArgs(position); OnItemClick(e); var daily = Daily?[position]; var hourly = daily?.Hourly?.ToArray(); OnBindDetailsViewHolder(holder as WeatherDailyItemViewHolderBase, position, hourly); //http://stackoverflow.com/questions/26875061/scroll-recyclerview-to-show-selected-item-on-top //RecyclerView?.ScrollToPosition(position); //RecyclerView?.SmoothScrollToPosition(position); RecyclerView?.PostDelayed(() => { RecyclerView?.SmoothScrollToPosition(position); }, 300); } }
protected virtual void OnItemClick(WeatherDailyItemEventArgs e) { ItemClick?.Invoke(this, e); }