예제 #1
0
        protected override void SetValueImpl(object target, object value)
        {
            try
            {
                if (!(target is EmptyDataSet emptyDataSet) || value == null)
                {
                    return;
                }

                States state     = (States)Enum.Parse(typeof(States), value.ToString());
                UIView stateView = new UIView()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false
                };

                foreach (UIView view in emptyDataSet.ContentView.Subviews)
                {
                    view.RemoveFromSuperview();
                }

                emptyDataSet.ContentView.Alpha = 1f;
                var _frame = new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height);

                switch (state)
                {
                case States.Normal:
                    emptyDataSet.ContentView.Alpha = 0f;
                    break;

                case States.Loading:
                    stateView = new LoadingView(_frame);
                    break;

                case States.NoData:
                    stateView = new NoDataView(_frame);
                    break;

                case States.NoInternet:
                    stateView = new NoInternetView(_frame, emptyDataSet.RefreshCommand);
                    break;

                case States.Error:
                    stateView = new ErrorView(_frame);
                    break;
                }
                emptyDataSet.ContentView.AddSubview(stateView);
                stateView.SetCenterContraintTo(emptyDataSet.ContentView);
                stateView.SetLeftContraintTo(emptyDataSet.ContentView, 0);
                stateView.SetRightContraintTo(emptyDataSet.ContentView, 0);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }
예제 #2
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
            };
        }
예제 #3
0
        async void CreateLayout()
        {
            if (_noFavoritesView == null)
            {
                _noFavoritesView = new NoDataView(Strings.HeartIcon, Strings.NoFavoritesText)
                {
                    VerticalOptions   = LayoutOptions.CenterAndExpand,
                    HorizontalOptions = LayoutOptions.CenterAndExpand
                };
            }
            _noFavoritesView.Opacity = 0;

            if (_mainLayot == null)
            {
                _mainLayot = new StackLayout {
                    Spacing = 20,
                    Padding = new Thickness(10)
                };
            }

            if (_mainContent == null)
            {
                _mainContent = new ScrollView {
                    Opacity = 0,
                    Content = _mainLayot
                };
            }

            if (Content == null)
            {
                if (ViewModel.FavoritesLeagues.Count == 0)
                {
                    Content = _noFavoritesView;
                    await Content.FadeTo(1, (uint)Integers.AnimationSpeed, Easing.SinIn);

                    return;
                }
                else
                {
                    foreach (var league in SqlManager.Cache.Favorites)
                    {
                        var card = new LeagueCardView(league);
                        card.OnCardClicked = OnCardClicked;
                        _mainLayot.Children.Add(card);
                    }
                }

                Content = _mainContent;

                await Content.FadeTo(1, (uint)Integers.AnimationSpeed, Easing.SinIn);
            }
            else
            {
                if (_mainContent.Content is StackLayout)
                {
                    if (ViewModel.FavoritesLeagues.Count == 0)
                    {
                        foreach (var card in (_mainContent.Content as StackLayout).Children)
                        {
                            await card.FadeTo(0, (uint)Integers.AnimationSpeed, Easing.SinIn);
                        }
                        Content = _noFavoritesView;
                        await _noFavoritesView.FadeTo(1, (uint)Integers.AnimationSpeed, Easing.SinIn);
                    }
                    else if (ViewModel.FavoritesLeagues.Count != (_mainContent.Content as StackLayout).Children.Count)
                    {
                        var removedIndex = -1;
                        for (int i = 0; i < (_mainContent.Content as StackLayout).Children.Count; i++)
                        {
                            if (ViewModel.FavoritesLeagues.FirstOrDefault(item => item.Id == ((_mainContent.Content as StackLayout).Children[i] as LeagueCardView).LeagueItem.Id) == null && removedIndex == -1)
                            {
                                removedIndex = i;
                                await(_mainContent.Content as StackLayout).Children [i].FadeTo(0, (uint)Integers.AnimationSpeed, Easing.SinIn);
                                await Task.Delay(100);

                                (_mainContent.Content as StackLayout).Children.RemoveAt(i);
                                break;
                            }
                        }
                    }
                }
                else
                {
                    Content = _noFavoritesView;
                    await _noFavoritesView.FadeTo(1, (uint)Integers.AnimationSpeed, Easing.SinIn);
                }
            }
        }