protected override void OnLoaded(object sender, RoutedEventArgs routedEventArgs) { base.OnLoaded(sender, routedEventArgs); if (_scrollViewer == null) { _scrollViewer = TimelineListView.FindDescendant <ScrollViewer>(); _scrollViewer.ViewChanged += ScrollViewerOnViewChanged; } }
public async Task Refresh() { TimelineCollection.Clear(); HolderText.Visibility = Visibility.Collapsed; LoadingRing.IsActive = true; var data = await _animeService.GetTimelineAsync(_type); if (data != null) { data.ForEach(p => TimelineCollection.Add(p)); } HolderText.Visibility = TimelineCollection.Count == 0 ? Visibility.Visible : Visibility.Collapsed; LoadingRing.IsActive = false; await Task.Delay(300); TimelineListView.ScrollIntoView(TimelineCollection.Where(p => p.is_today == 1).FirstOrDefault(), ScrollIntoViewAlignment.Leading); }
public TimelineTail(AccountGroup group) { InitializeComponent(); this.group = group; HeaderView.Icon.Source = "ic_timeline_green_300_48dp"; HeaderView.HeaderLabel.Text = "타임라인 @" + group.AccountForRead.User.ScreenName; WriterView = new StatusWriterView(group); WriterView.IsVisible = false; RootView.Children.Insert(1, WriterView); WriteIcon = HeaderView.AddIcon("ic_create_black_48dp"); WriteIcon.GestureRecognizers.Add(new TapGestureRecognizer() { Command = new Command(() => { WriterView.IsVisible = !WriterView.IsVisible; }) }); TimelineListView.Fetchable = new AccountFetch.Timeline(App.Tail, group); HeaderView.RefreshAction += new Action(async() => { try { await TimelineListView.Refresh(); } catch (Exception e) { Util.HandleException(e); } HeaderView.InRefresh = false; }); }