void OnItemSelected(object sender, SelectedItemChangedEventArgs args) { if (!_isDisappeared && !_isAppearing && args.SelectedItem != null) { ItemsListView.ScrollTo(args.SelectedItem, ScrollToPosition.MakeVisible, true); } }
protected override void OnAppearing() { base.OnAppearing(); viewModel.LoadLatestCommand.Execute(null); if (viewModel.LogItems.Count > 0) { ItemsListView.ScrollTo(viewModel.LogItems[0], ScrollToPosition.Start, true); } }
private void LoadMore_OnClicked(object sender, EventArgs e) { // VisibilyatorAsync(true,1); MoreItemIndicator.IsVisible = true; MoreItemIndicator.IsRunning = true; var v = ItemsListView.ItemsSource.Cast <Post>().LastOrDefault(); ItemsListView.ScrollTo(v, ScrollToPosition.MakeVisible, true); // throw new NotImplementedException(); }
private void StatePicker_SelectedIndexChanged(object sender, EventArgs e) { var picker = sender as Picker; if (!(picker.SelectedItem is StateModel state)) { return; } var items = ItemsListView.ItemsSource as ObservableCollection <ItemModel>; if (items != null && items.Count > 0) { ItemsListView.ScrollTo(items[0], ScrollToPosition.Start, false); } ViewModel.ShowItemsCommand.Execute(null); }
void Handle_ItemAppearing(object sender, ItemVisibilityEventArgs e) { //only scroll when the item is more than 1 in the list if (viewModel.ScrollToEvent && viewModel.Items.Count > 0) { viewModel.ScrollToEvent = false; //get the index of the event that is later than today int todaysEvent = viewModel.Items.IndexOf(viewModel.Items .FirstOrDefault(i => DateTime.Compare(DateTime.ParseExact(i.StartDateTime, "yyyy/MM/dd", null), DateTime.Now) > 0)); //if the index is found, scroll to that item in the list if (todaysEvent != -1) { ItemsListView.ScrollTo(viewModel.Items[todaysEvent], ScrollToPosition.Center, true); Debug.WriteLine("[ScrollToEvent]Moving to the current event " + viewModel.Items[todaysEvent].EventName + "-" + viewModel.Items[todaysEvent].StartDateTime); } } }
protected override async void OnAppearing() { _isAppearing = true; var task = !_viewModel.Items.Any() ? _viewModel.LoadLosungItemsAsync() : Task.CompletedTask; base.OnAppearing(); try { await task; ItemsListView.ScrollTo(_viewModel.SelectedItem ?? _viewModel.Today, ScrollToPosition.MakeVisible, false); } finally { _isAppearing = _isDisappeared = false; } }
private void Picker_SelectedIndexChanged(object sender, EventArgs e) { ItemsListView.ScrollTo(0); }