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); } }
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 }; }
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); } } }