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