Ejemplo n.º 1
0
        void CreateLayout()
        {
            _noDataView = new NoDataView("ic_cloud_off_48pt", "No Data Found")
            {
                VerticalOptions   = LayoutOptions.CenterAndExpand,
                HorizontalOptions = LayoutOptions.CenterAndExpand
            };

            _loadingDataView = new LoadingDataView {
                VerticalOptions   = LayoutOptions.CenterAndExpand,
                HorizontalOptions = LayoutOptions.CenterAndExpand
            };

            _arrowImage = new Image {
                Source = "ic_arrow_downward"
            };
            _pullText = new Label()
            {
                Text      = "Pull To Refresh",
                FontSize  = 15,
                TextColor = Color.Black,
                HorizontalTextAlignment = TextAlignment.Center
            };

            _pullToRefreshLayout = new StackLayout {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                Spacing           = 5,
                Padding           = new Thickness(0, 5, 0, 0),
                Children          =
                {
                    _arrowImage,
                    _pullText
                }
            };

            _mainNoDataLayout = new ListView {
                SeparatorVisibility    = SeparatorVisibility.None,
                IsPullToRefreshEnabled = true,
                HorizontalOptions      = LayoutOptions.FillAndExpand,
                VerticalOptions        = LayoutOptions.FillAndExpand,
                Header = new StackLayout {
                    Spacing  = 200,
                    Children =
                    {
                        _pullToRefreshLayout,
                        _noDataView
                    }
                }
            };
            if (Device.OS == TargetPlatform.iOS)
            {
                var isfavorite = League.IsFavorite;
                _addItem          = new ToolbarItem();
                _addItem.Text     = isfavorite ? "remove" : "add";
                _addItem.Clicked += _addItem_Clicked;
                _addItem.Icon     = isfavorite ? "ic_favorite_white" : "ic_favorite_border_white";

                ToolbarItems.Add(_addItem);
            }

            _fixturesListView = new ListView(ListViewCachingStrategy.RecycleElement)
            {
                RowHeight = 120,
                IsPullToRefreshEnabled = true,
                BackgroundColor        = Color.White,
                ItemTemplate           = new DataTemplate(typeof(FixtureLayout)),
                SeparatorVisibility    = SeparatorVisibility.None,
                Opacity = 0
            };
        }
Ejemplo n.º 2
0
        async Task LoadFixtures()
        {
            Device.BeginInvokeOnMainThread(async() => {
                if (_loadingDataView == null)
                {
                    _loadingDataView = new LoadingDataView {
                        VerticalOptions   = LayoutOptions.CenterAndExpand,
                        HorizontalOptions = LayoutOptions.CenterAndExpand,
                    };
                    if (Device.OS == TargetPlatform.iOS)
                    {
                        _loadingDataView.Opacity = 0;
                    }
                }
                if (Device.OS == TargetPlatform.Android)
                {
                    DroidLayout(new StackLayout {
                        Opacity  = 0,
                        Children =
                        {
                            _loadingDataView
                        }
                    });
                }
                else
                {
                    Content = _loadingDataView;
                    await Content.FadeTo(1, (uint)Integers.AnimationSpeed, Easing.SinIn);
                }
                if (_loadingDataView != null)
                {
                    _loadingDataView.RotateImage();
                }
            });

            PauseAutoUpdate();
            var result = await ScoresApp.Service.WebService.Default.GetLeagueMatches(League.Id, true, cts);

            _fixturesListView.ItemsSource = result;
            StartAutoUpdate();

            Device.BeginInvokeOnMainThread(async() => {
                _fixturesListView.EndRefresh();
                _mainNoDataLayout.EndRefresh();
                if (result.Count > 0)
                {
                    if (Device.OS == TargetPlatform.Android)
                    {
                        DroidLayout(_fixturesListView);
                    }
                    else
                    {
                        await Content.FadeTo(0, (uint)Integers.AnimationSpeed, Easing.SinOut);
                        Content = _fixturesListView;
                        await Content.FadeTo(1, (uint)Integers.AnimationSpeed, Easing.SinIn);
                    }
                }
                else
                {
                    if (Device.OS == TargetPlatform.Android)
                    {
                        DroidLayout(_mainNoDataLayout);
                    }
                    else
                    {
                        await Content.FadeTo(0, (uint)Integers.AnimationSpeed, Easing.SinOut);
                        Content = _mainNoDataLayout;
                        await Content.FadeTo(1, (uint)Integers.AnimationSpeed, Easing.SinIn);
                    }
                }
                _loadingDataView = null;
            });
        }