protected virtual int DeterminePosition(ScrollToRequestEventArgs args) { if (args.Mode == ScrollToMode.Position) { // TODO hartez 2018/08/28 15:40:03 Need to handle group indices here as well return(args.Index); } return(ItemsViewAdapter.GetPositionForItem(args.Item)); }
int GetIndexFromTemplatedCell(global::Android.Views.View view) { int itemIndex = -1; if (view is ItemContentView templatedCell) { var bContext = templatedCell?.Element?.BindingContext; itemIndex = ItemsViewAdapter.GetPositionForItem(bContext); } return(itemIndex); }
void MarkItemSelected(object selectedItem) { var position = ItemsViewAdapter.GetPositionForItem(selectedItem); var selectedHolder = FindViewHolderForAdapterPosition(position); if (selectedHolder == null) { return; } if (selectedHolder is SelectableViewHolder selectable) { selectable.IsSelected = true; } }
int GetCarouselViewCurrentIndex(int index) { var centeredView = this.GetCenteredView(); if (centeredView is ItemContentView templatedCell) { var bContext = templatedCell?.Element?.BindingContext; index = ItemsViewAdapter.GetPositionForItem(bContext); } else { return(-1); } return(index); }
protected override int DetermineTargetPosition(ScrollToRequestEventArgs args) { if (args.Mode == ScrollToMode.Element) { return(ItemsViewAdapter.GetPositionForItem(args.Item)); } if (!Carousel.Loop) { return(args.Index); } if (_carouselViewLoopManager == null) { return(-1); } var carouselPosition = GetCarouselViewCurrentIndex(Carousel.Position); var getGoIndex = _carouselViewLoopManager.GetGoToIndex(this, carouselPosition, args.Index); return(getGoIndex); }