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);
        }
Exemple #3
0
        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;
            });
        }