private void OnParallaxScrollScrolled(object sender, ScrolledEventArgs e)
        {
            double translation;

            if (lastScroll < e.ScrollY)
            {
                translation = 0 - ((e.ScrollY / 2));

                if (translation > 0)
                {
                    translation = 0;
                }
            }
            else
            {
                translation = 0 + ((e.ScrollY / 2));

                if (translation > 0)
                {
                    translation = 0;
                }
            }

            imgPueblo.TranslateTo(imgPueblo.TranslationX, translation / 3);
            lastScroll = e.ScrollY;
        }
        private async void ScrollView_Scrolled(object sender, ScrolledEventArgs e)
        {
            if (!(sender is ScrollView scrollView))
            {
                return;
            }

            await GoToTopListVisibility.FadeTo(1, 200, Easing.Linear);

            var scrollingSpace = scrollView.ContentSize.Height - scrollView.Height - 25;

            if (scrollingSpace > e.ScrollY)
            {
                return;
            }

            ScrolledToBottom += 1;

            if (ScrolledToBottom == 1)
            {
                Loading loading = new Loading();
                repeater.Children.Add(loading);
                await Task.Delay(1000);

                FillRepeater();
                repeater.Children.Remove(loading);
            }
        }
示例#3
0
        private void ScrollRoot_Scrolled(object sender, ScrolledEventArgs e)
        {
            var val = ReMap(e.ScrollY, 0, ScrollMaxLimit, 1, 0);

            this.HeaderContent.Scale   = val;
            this.HeaderContent.Opacity = val;
        }
示例#4
0
        private async void OnScrolledAsync(object sender, ScrolledEventArgs e)
        {
            ScrollView scroller = (ScrollView)sender;

            double threashold = (e.ScrollY + scroller.Height) + Booru.preview_height * 2;

            //if we touch the threshhold...
            if (threashold >= scroller.ContentSize.Height)
            {//threshhold == bottom of scrollveiw + height of one image (aka just before it's visible)
                debug.Text = "Fetching";

                if (CurrentSearch.posts.Count > 0)
                {
                    Connection.Arguments["before_id"] = CurrentSearch.posts[CurrentSearch.posts.Count - 1].Id.ToString();
                }

                //notify the user something is happening
                IsLoading();

                //return control to the parent thread (UI) until this await has completed
                await CurrentSearch.UpdateCacheAsync();//.ConfigureAwait(false);

                AddTiles();

                //removie the activity indicator
                IsLoading(false);

                //finished / resume
                debug.Text = "Fetch complete";
            }
        }
示例#5
0
        void ScrollEvent(Object sender, ScrolledEventArgs e)
        {
            Console.WriteLine(e.ScrollY.ToString());
            if (e.ScrollY > MainScrollView.ContentSize.Height - MainScrollView.Height - 30)
            {
                //Thread.Sleep(100);
                backgroundStack.Children.Add(new Image()
                {
                    Source        = BGImage,
                    Aspect        = Aspect.AspectFill,
                    HeightRequest = 350,
                    Margin        = new Thickness(0, 0, 0, 0),
                });

                void CallButtonCreator()
                {
                    //Thread.Sleep(100);
                    ButtonCreater();
                }

                //buttonCreater(TotalIterations);

                CallButtonCreator();

                //SkCanvasView.InvalidateSurface();
                DeleteButtons();
                AddCanvasSections();
                //SkCanvasView2.InvalidateSurface();
            }
        }
示例#6
0
        private double AvatarScaleTransformation(ScrolledEventArgs e)
        {
            ///
            /// iOS allowed less than zero values
            ///
            if (e.ScrollY > 0)
            {
                if (_avatar_Grid.Scale > 1)
                {
                    _avatar_Grid.Scale = 1;
                }
                else
                {
                    double targetScale = 1 - ((_SCALE_LIMIT_VALUE * (e.ScrollY * _SCALE_MULTIPLIER)) / _Y_SCROLL_SCALE_LIMIT_VALUE);

                    _avatar_Grid.Scale = targetScale > _SCALE_LIMIT_VALUE ? targetScale : _SCALE_LIMIT_VALUE;
                }
            }
            else
            {
                _avatar_Grid.Scale = 1;
            }

            return(_avatar_Grid.Scale);
        }
示例#7
0
        private void MainScrollView_Scrolled(object sender, ScrolledEventArgs e)
        {
            double progress = Math.Min(e.ScrollY, 100) / 100;

            MainHeaderImage.Scale   = 1 + progress;
            MainHeaderImage.Opacity = 1 - progress;
        }
示例#8
0
        private void ScrollView_Scrolled(object sender, ScrolledEventArgs e)
        {
            double spaceAvailableForScrolling = scrollView.ContentSize.Height - scrollView.Height;
            double buffer = 32;

            ScrollDownPrompt.IsVisible = spaceAvailableForScrolling > e.ScrollY + buffer;
        }
示例#9
0
        private async void ScrollView_Scrolled(object sender, ScrolledEventArgs e)
        {
            if (translating)
            {
                return;
            }
            uint mills = 100;

            translating = true;
            if (e.ScrollY > lastScrollPoint)
            {
                // hide
                if (isVisible)
                {
                    await PanelGrid.TranslateTo(PanelGrid.TranslationX, PanelGrid.TranslationY + PanelGrid.HeightRequest, mills);

                    isVisible = false;
                }
            }
            else
            {
                // show
                if (!isVisible)
                {
                    await PanelGrid.TranslateTo(PanelGrid.TranslationX, PanelGrid.TranslationY - PanelGrid.HeightRequest, mills);

                    isVisible = true;
                }
            }
            lastScrollPoint = e.ScrollY;
            translating     = false;
        }
示例#10
0
        private void OnListViewScrolled(object sender, ScrolledEventArgs args)
        {
            //var yOffset = args.ScrollY;

            //if (yOffset < 0)
            //{
            //    yOffset = 0;
            //}
            //else if (yOffset > MaxOffset)
            //{
            //    yOffset = MaxOffset;
            //}

            //PakagesView.TranslateTo(0, (yOffset * (-1)));

            //HeaderView.Opacity = 1 - (yOffset / MaxOffset);

            //if (HeaderView.Opacity < 0.4f)
            //{
            //    RightButtons.Opacity = TitleLabel.Opacity = (yOffset / MaxOffset);
            //}
            //else
            //{
            //    RightButtons.Opacity = TitleLabel.Opacity = 0;
            //}

            //RelativeLayout.SetHeightConstraint(PakagesView, Constraint.RelativeToParent((parent) => { return parent.Height - MaxOffset + 30; }));
        }
示例#11
0
        private void CalculateHeaderTranslation(ScrolledEventArgs e)
        {
            this.Content.FindByName("Scale");
            double translation = 0;

            if (_image == null)
            {
                _herosection = (Grid)Flex.Children[0];
                _image       = (Image)_herosection.Children[0];
            }

            var _threshold = 180;


            if (e.ScrollY > _threshold && !_headerVisible)
            {
                Header.FadeTo(1).SafeFireAndForget();

                Fab.ScaleTo(0);
                _headerVisible = true;
            }
            else if (e.ScrollY < _threshold && _headerVisible)
            {
                Header.FadeTo(0).SafeFireAndForget();
                Fab.ScaleTo(1).SafeFireAndForget();
                _headerVisible = false;
            }
            System.Console.WriteLine(e.ScrollY);
            var scaleFactor = (2175 - e.ScrollY) / 1500;

            _image.Scale     = scaleFactor;
            Fab.TranslationY = -e.ScrollY;
            _lastScroll      = e.ScrollY;
        }
示例#12
0
        private void BoundedScroll(Object o, ScrolledEventArgs e)
        {
            UpdateScrollBars();

            //leftLimit = ((stepgrid.Width / 2) - (stepgrid.Width * stepgrid.Scale / 2));      //
            //rightLimit = (stepgrid.Width / 2) + (stepgrid.Width * stepgrid.Scale / 2) - scroller.Width;     // Might not want to declare
            //downLimit = ((stepgrid.Height / 2) - (stepgrid.Height * stepgrid.Scale / 2));    // new ones every time?
            //upLimit = (stepgrid.Height / 2) + (stepgrid.Height * stepgrid.Scale / 2) - scroller.Height;    //

            //if (leftLimit > rightLimit)
            //{
            //    leftLimit = rightLimit - (leftLimit - rightLimit);  // If floating point conversion errors put leftlimit to the right of rightlimit, set it back
            //}
            //if (downLimit > upLimit)
            //{
            //    downLimit = upLimit - (downLimit - upLimit);
            //}

            //double newX = Clamp(scroller.ScrollX, leftLimit, rightLimit);
            //double newY = Clamp(scroller.ScrollY, downLimit, upLimit);

            //System.Diagnostics.Debug.WriteLine("\nScrollX: " + scroller.ScrollX + " ScrollY: " + scroller.ScrollY);
            //System.Diagnostics.Debug.WriteLine("leftLimit: " + leftLimit + " rightLimit: " + rightLimit);
            //System.Diagnostics.Debug.WriteLine("downLimit: " + downLimit + " uplimit: " + upLimit);
            //System.Diagnostics.Debug.WriteLine("width: " + stepgrid.Width + " height: " + stepgrid.Height);
            //System.Diagnostics.Debug.WriteLine("currentScale: " + currentScale + "\n");

            //if (scroller.ScrollX < leftLimit || scroller.ScrollY < downLimit || scroller.ScrollX > rightLimit || scroller.ScrollY > upLimit)
            //{
            //    scroller.ScrollToAsync(newX, newY, false);   // might want to make false
            //}
        }
示例#13
0
        private async void ScrollContainer_Scrolled(object sender, ScrolledEventArgs e)
        {
            try
            {
                //如果沒有綁定到要在執行一次(UWP首次啟用不會觸發SizeChanged)
                if (_storyboard.Count == 0)
                {
                    MainPage_SizeChanged(sender, e);
                }

                if ((e.ScrollY > 0) && (CurrentState != States.SearchHidden))
                {
                    _storyboard.Go(States.SearchHidden);
                    CurrentState = States.SearchHidden;
                    scrollContainer.IsEnabled = false;
                    await Task.Delay(100);

                    scrollContainer.IsEnabled = true;
                }
                else if ((e.ScrollY == 0) && (CurrentState != States.SearchExpanded))
                {
                    _storyboard.Go(States.SearchExpanded);
                    CurrentState = States.SearchExpanded;
                    scrollContainer.IsEnabled = false;
                    await Task.Delay(100);

                    scrollContainer.IsEnabled = true;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"[ERROR][MainPage]{ex.Message}");
            }
        }
示例#14
0
            /// <summary>
            /// Send the scrolled event to the portable event handler.
            /// </summary>
            /// <param name="y">The vertical content offset.</param>
            private void SendScrollEvent(double y)
            {
                var element = _element as PortableListView;
                var args    = new ScrolledEventArgs(0, y);

                element?.OnScrolled(args);
            }
示例#15
0
        private void MainScrollView_Scrolled(object sender, ScrolledEventArgs e)
        {
            double progress = Math.Min(e.ScrollY, viewModel.HeaderBounds.Height) / viewModel.HeaderBounds.Height;

            MainHeaderImage.Scale   = 1 + progress;
            MainHeaderImage.Opacity = 1 - progress;
        }
 private void BookRecommendationsScrolled(object sender, ScrolledEventArgs e)
 {
     if (IsScrollectToRightEnd((ScrollView)sender))
     {
         m_viewModel.Recommendation.LoadNextBooks(BookCategory.Category.Recommendation);
     }
 }
示例#17
0
        private void OnParallaxScrollScrolled(object sender, ScrolledEventArgs e)
        {
            double translation = 0;

            if (_lastScroll < e.ScrollY)
            {
                translation = 0 - ((e.ScrollY / 2));

                if (translation > 0)
                {
                    translation = 0;
                }
            }
            else
            {
                translation = 0 + ((e.ScrollY / 2));

                if (translation > 0)
                {
                    translation = 0;
                }
            }

            HeaderPanel.TranslateTo(HeaderPanel.TranslationX, translation);
            _lastScroll = e.ScrollY;
        }
 void MainScroll_Scrolled (object sender, ScrolledEventArgs e)
 {
     if (e.ScrollY > (MainStack.Height - SpeakerTitle.Height))
         Title = Speaker.FirstName;
     else
         Title = "Speaker Info";
 }
示例#19
0
        private void ScrollView_Scrolled(object sender, ScrolledEventArgs e)
        {
            var val = MathHelper.ReMap(e.ScrollY, ScrollMinLimit, ScrollMaxLimit, 1, 0);

            this.infoPanel.Scale   = val;
            this.infoPanel.Opacity = val;
        }
示例#20
0
        private void ScrollView_Scrolled(object sender, ScrolledEventArgs e)
        {
            if (scrollXPosition + 50 < e.ScrollX)
            {
                var current = GoodsCategories.Children.FirstOrDefault(_ => _.GetType() == typeof(Button) && ((Button)_).Text == currentDisplayCategoryKey);
                var next    = GoodsCategories.Children.FirstOrDefault(_ => _.X > current.X && _.GetType() == typeof(Button));
                if (next != null)
                {
                    ((ScrollView)sender).ScrollToAsync(next, ScrollToPosition.Center, true);
                    B_Clicked((Button)next, new EventArgs());
                    scrollXPosition = e.ScrollX;
                }
            }
            if (scrollXPosition != 0 && scrollXPosition - 50 > e.ScrollX)
            {
                var current = GoodsCategories.Children.FirstOrDefault(_ => _.GetType() == typeof(Button) && ((Button)_).Text == currentDisplayCategoryKey);
                var next    = GoodsCategories.Children.FirstOrDefault(_ => _.X < current.X && _.GetType() == typeof(Button));
                if (next != null)
                {
                    ((ScrollView)sender).ScrollToAsync(next, ScrollToPosition.Center, true);
                    B_Clicked((Button)next, new EventArgs());
                    scrollXPosition = e.ScrollX;
                }
            }
            var lastBtn = GoodsCategories.Children.Last(_ => _.GetType() == typeof(Button));

            if (e.ScrollX > lastBtn.X)
            {
                ((ScrollView)sender).ScrollToAsync(lastBtn, ScrollToPosition.Center, false);
            }
        }
 private void BookMangasScrolled(object sender, ScrolledEventArgs e)
 {
     if (IsScrollectToRightEnd((ScrollView)sender))
     {
         m_viewModel.Manga.LoadNextBooks(BookCategory.Category.Manga);
     }
 }
            /// <summary>
            /// Send the scrolled event to the portable event handler.
            /// </summary>
            /// <param name="y">The vertical content offset.</param>
            private void SendScrollEvent(double y)
            {
                var element = _element as ExtendedListView;
                var args    = new ScrolledEventArgs(0, y);

                element?.RaiseScrollEvent(args);
            }
示例#23
0
        private void Scroller_Scrolled(object sender, ScrolledEventArgs e)
        {
            if (ViewModel.Searching)
            {
                return;
            }

            var scroller = sender as ScrollView;
            var pos      = e.ScrollY;

            if (pos >= scroller.ContentSize.Height - 1200)
            {
                ViewModel.GetNextPage();
                Device.BeginInvokeOnMainThread(() =>
                {
                    DataGrid.ItemsSource = ViewModel.CurrentProducts;
                    scroller.ScrollToAsync(0, 100, true);
                });
            }
            else if (pos == 0)
            {
                ViewModel.GetPreviousPage();
                Device.BeginInvokeOnMainThread(() =>
                {
                    DataGrid.ItemsSource = ViewModel.CurrentProducts;
                    if (ViewModel.CurrentIndex > 1)
                    {
                        scroller.ScrollToAsync(0, 100, true);
                    }
                });
            }
        }
        private async void ProfileScrollView_OnScrolled(object sender, ScrolledEventArgs e)
        {
            if (Device.RuntimePlatform == "iOS")
            {
                return;
            }

            if (e.ScrollY > SegmentsContentView.Y && !StickySegmentsContentView.IsVisible)
            {
                StickySegmentsContentView.IsVisible = true;
                await StickySegmentsContentView.FadeTo(1, 175, Easing.SinInOut);

                await ProfileNameContentView.FadeTo(1, 100, Easing.SinInOut);

                return;
            }

            if (e.ScrollY < SegmentsContentView.Y + SegmentsContentView?.Height && StickySegmentsContentView.IsVisible)
            {
                await StickySegmentsContentView.FadeTo(0, 175, Easing.SinIn);

                StickySegmentsContentView.IsVisible = false;

                await ProfileNameContentView.FadeTo(0, 100, Easing.SinIn);
            }
        }
 private void CarouselScrollView_Scrolled(object sender, ScrolledEventArgs e)
 {
     if (carouselWidth != carouselScrollView.ContentSize.Width)
     {
         carouselWidth           = carouselScrollView.ContentSize.Width;
         carouselContentViewSize = ((carouselWidth - 2 * carouselScrollView.placeHolderOffset - ((carouselPagesCount - 1) * carouselScrollView.spacing)) / (carouselPagesCount));
     }
     if (Indicators)
     {
         var previousPosition = 1 + Math.Round((carouselScrollPosition - carouselScrollView.placeHolderOffset) / (carouselContentViewSize + carouselScrollView.spacing));
         var currentPosition  = 1 + Math.Round((e.ScrollX - carouselScrollView.placeHolderOffset) / (carouselContentViewSize + carouselScrollView.spacing));
         if (previousPosition != currentPosition)
         {
             for (int i = 0; i < dotLayout.dots.Length; i++)
             {
                 if (currentPosition == i)
                 {
                     dotLayout.dots[i].Opacity = 1;
                 }
                 else
                 {
                     dotLayout.dots[i].Opacity = 0.5;
                 }
             }
             Position = (int)currentPosition;
             OnPositionChanged?.Invoke(this, new PositionChangedEventArgs()
             {
                 Position = (int)currentPosition
             });
         }
     }
     carouselScrollPosition = e.ScrollX;
 }
示例#26
0
        private async void Scrollview_Scrolled(object sender, ScrolledEventArgs e)
        {
            double translation;
            bool   visibility;

            if (previousOffset < e.ScrollY - 45)
            {
                translation = -40;
                visibility  = false;
            }
            else if (previousOffset > e.ScrollY + 45)
            {
                translation = 0;
                visibility  = true;
            }
            else
            {
                return;
            }

            await LytFilter.TranslateTo(LytFilter.TranslationX, translation, 300);

            await Task.Delay(100);

            LytFilter.IsVisible = visibility;
            previousOffset      = e.ScrollY;
        }
        private void ParallaxScrollView_Scrolled(object sender, ScrolledEventArgs e)
        {
            //double translation = 0;

            //if (_lastScroll < e.ScrollY)
            //{
            //    translation = 0 - ((e.ScrollY / 2));

            //    if (translation > 0) translation = 0;
            //}
            //else
            //{
            //    translation = 0 + ((e.ScrollY / 2));

            //    if (translation > 0) translation = 0;
            //}

            //HeaderPanel.TranslateTo(HeaderPanel.TranslationX, translation);
            //_lastScroll = e.ScrollY;

            if (e.ScrollY > (300 - PetTitle.Height))
            {
                var color = (Color)App.Current.Resources["colorPrimary"];
                MessagingService.Current.SendMessage(MessageKeys.ToolbarColor, color);
                Title = ViewModel.Pet.Fullname;
            }
            else
            {
                MessagingService.Current.SendMessage(MessageKeys.ToolbarColor, Color.Transparent);
                Title = string.Empty;
            }
        }
        private void HScroll_Scrolled(object sender, ScrolledEventArgs e)
        {
            var    scroll         = (ScrollView)sender;
            double scrollingSpace = scroll.ContentSize.Height - scroll.Height;

            var title = new Label
            {
                Text                  = Result.Title,
                Scale                 = 0,
                TextColor             = Color.White,
                FontAttributes        = FontAttributes.Bold,
                FontSize              = 20,
                VerticalTextAlignment = TextAlignment.Center
            };

            MainThread.InvokeOnMainThreadAsync(async() =>
            {
                await title.ScaleTo(1, 1500, Easing.Linear);
            }).SafeFireAndForget();

            if (scrollingSpace <= e.ScrollY)
            {
                if (Count == 1)
                {
                    MainThread.InvokeOnMainThreadAsync(async() =>
                    {
                        await AddToFavLayout.ScaleTo(1, 250, Easing.Linear);
                    }).SafeFireAndForget();

                    Shell.SetTitleView(this, null);
                    Shell.SetTitleView(this, title);
                }
                Count += 1;
            }
        }
示例#29
0
 public void Scrolled(ScrolledEventArgs args)
 {
     if (OnScroll != null)
     {
         this.OnScroll(this, args);
     }
 }
示例#30
0
        void OnParallaxScrollScrolled(object sender, ScrolledEventArgs e)
        {
            double translation = 0;

            if (lastScroll == 0)
            {
                lastScroll = e.ScrollY;
            }

            if (lastScroll < e.ScrollY)
            {
                translation = 0 - ((e.ScrollY / parallaxSpeed));

                if (translation > 0)
                {
                    translation = 0;
                }
            }
            else
            {
                translation = 0 + ((e.ScrollY / parallaxSpeed));

                if (translation > 0)
                {
                    translation = 0;
                }
            }

            SubHeaderView.FadeTo(translation < -40 ? 0 : 1);

            lastScroll = e.ScrollY;
        }
        private void Scrollview_Scrolled(object sender, ScrolledEventArgs e)
        {
            var    senderObj  = sender as Xamarin.Forms.ListView;
            double minHeight  = 0;
            double maxHeight  = 40;
            var    scrollY    = e.ScrollY;
            bool   checkToTop = false;

            //if (scrollY == 0)
            //    return;
            if (previousOffset >= scrollY)
            {
                if (viewModel.heightImages - scrollY >= minHeight && viewModel.heightImages - scrollY <= maxHeight)
                {
                    viewModel.heightImages -= scrollY;
                    //senderObj.ScrollTo(viewModel.Items[0], ScrollToPosition.Start, true);
                }
            }
            else
            {
                checkToTop = true;
                //Down direction
                if (viewModel.heightImages - scrollY >= minHeight && viewModel.heightImages - scrollY <= maxHeight)
                {
                    viewModel.heightImages -= scrollY;
                    //senderObj.ScrollTo(viewModel.Items[0], ScrollToPosition.Start, true);
                }
            }
            if (checkToTop)
            {
                checkToTop = false;
                //senderObj.ScrollToAsync(viewModel.Items[0], ScrollToPosition.Start, true);
            }
            previousOffset = scrollY;
        }
示例#32
0
 private void OnScrolled(object sender, ScrolledEventArgs e)
 {
     var rightOffset = e.ScrollX + this.Width;
     var width = this.ItemsView.Width;
     if (rightOffset + 100 > width)
     {
         this.RestockCommand?.Execute(null);
     }
 }
		public void OnScroll (object sender, ScrolledEventArgs e) {
			var imageHeight = img.Height * 2;
			var scrollRegion = layeringGrid.Height - outerScrollView.Height;
			var parallexRegion = imageHeight - outerScrollView.Height;
			var factor = outerScrollView.ScrollY - parallexRegion * (outerScrollView.ScrollY / scrollRegion);
			img.TranslationY = factor;
			img.Opacity = 1 - ( factor / imageHeight ) ;
			headers.Scale = 1 - ( (factor ) / (imageHeight * 2) ) ;
		}
		async void OnScroll(object sender, ScrolledEventArgs e)
		{
			try {
				if(progressBar == null)
				{
					progressBar = DependencyService.Get<IProgressBar>();
				}
				if (masterScroll.Height+ masterScroll.ScrollY > (masterStack.Height - masterStack.Y-20)) {//Device.OnPlatform (512, 550, 0)
					masterScroll.Scrolled -= OnScroll;
					if (!displayedLastGem) {
						//progressBar.ShowProgressbar ("loading gems..");
						await LoadMoreGemsClicked ();
						//progressBar.HideProgressbar ();
					} else {
						progressBar.ShowToast ("Reached end of the list..");
					}
					await Task.Delay (TimeSpan.FromSeconds (2));
					masterScroll.Scrolled += OnScroll;
				} else if (masterScroll.ScrollY < Device.OnPlatform (-15, 10, 0)) {
					masterScroll.Scrolled -= OnScroll;
					if (!reachedFront) {
						//progressBar.ShowProgressbar ("Lading gems..");
						await LoadPreviousGems ();
						//progressBar.HideProgressbar ();
					} else {
						progressBar.ShowToast ("Reached starting of the list..");
					}
					await Task.Delay (TimeSpan.FromSeconds (2));
					masterScroll.Scrolled += OnScroll;
				}
			} catch (Exception ex) {
				progressBar.HideProgressbar ();                                                                         
			}
		}
		async  void OnScroll(object sender, ScrolledEventArgs e)
        {
            try
            {

             /*   if (masterScroll.ScrollY > headingLayout.Y )
                {
                    if (mainTitleBar.title.Text != "All Goals and Dreams")
                        mainTitleBar.title.Text = "All Goals and Dreams";
                }

                else
                {
                    if (mainTitleBar.title.Text != "Pending")
                        mainTitleBar.title.Text = "Pending";
                }*/


				if(  masterScroll.ScrollY + masterScroll.Height > ( masterStack.Height - masterStack.Y ) && !reachedEnd )
				{
					masterScroll.Scrolled -= OnScroll;
					progressBar.ShowProgressbar( "loading gems..." );

					if (OnLoadMoreGemsClicked( masterScroll, EventArgs.Empty ))
					{
						await Task.Delay( TimeSpan.FromSeconds( 1 ) );
						await masterScroll.ScrollToAsync( 0, 10, false );
					}



					progressBar.HideProgressbar();


					//await Task.Delay( TimeSpan.FromSeconds( 2 ) );
					masterScroll.Scrolled += OnScroll;


				}
				else if( masterScroll.ScrollY < Device.OnPlatform( -45, 1, 0 ) && !reachedFront  )
				{
					masterScroll.Scrolled -= OnScroll;
					progressBar.ShowProgressbar( "loading gems..." );

					if (OnLoadPreviousGemsClicked( masterScroll, EventArgs.Empty ))
					{
						await Task.Delay( TimeSpan.FromSeconds( 1 ) );
						await masterScroll.ScrollToAsync( 0,  masterStack.Height - 750, false );
					}
						
					progressBar.HideProgressbar();

					masterScroll.Scrolled += OnScroll;

				}

            }
            catch (Exception ex)
            {
				Debug.WriteLine (  "#####-----" + ex.Message );
            }
        }
        void OnScroll(object sender, ScrolledEventArgs e)
        {
            try
            {

              /*  System.Diagnostics.Debug.WriteLine("Scroll pos : " + masterScroll.ScrollY.ToString());
                System.Diagnostics.Debug.WriteLine("headingLayout y :" + headingLayout.Y);*/

                if (masterScroll.ScrollY > headingLayout.Y )
                {
                    if (mainTitleBar.title.Text != "All Goals and Dreams")
                        mainTitleBar.title.Text = "All Goals and Dreams";
                }

                else
                {
                    if (mainTitleBar.title.Text != "Pending")
                        mainTitleBar.title.Text = "Pending";
                }

            }
            catch (Exception)
            {
            }
        }
 void MainScroll_Scrolled(object sender, ScrolledEventArgs e)
 {
     if (e.ScrollY > SessionDate.Y)
         Title = ViewModel.Session.ShortTitle;
     else
         Title = "Session Details";
 }
		async void OnMasterScrollScrolled (object sender, ScrolledEventArgs e)
		{
			//if(  masterScroll.ScrollY > ( masterStackLayout.Height - Device.OnPlatform( 512, 650, 0 ) ) && !reachedEnd )
			if(  masterScroll.ScrollY + masterScroll.Height > ( masterStackLayout.Height - masterStackLayout.Y ) && !reachedEnd )
			{
				masterScroll.Scrolled -= OnMasterScrollScrolled;

				OnLoadMoreGemsClicked( masterScroll, EventArgs.Empty );

				//await Task.Delay( TimeSpan.FromSeconds( 1 ) );
				await masterScroll.ScrollToAsync( 0, 10, false );



				await Task.Delay( TimeSpan.FromSeconds( 2 ) );
				masterScroll.Scrolled += OnMasterScrollScrolled;


			}
			else if( masterScroll.ScrollY < Device.OnPlatform( -50, 1, 0 ) && !reachedFront  )
			{
				masterScroll.Scrolled -= OnMasterScrollScrolled;


				OnLoadPreviousGemsClicked( masterScroll, EventArgs.Empty );

				//await Task.Delay( TimeSpan.FromSeconds( 1 ) );
				await masterScroll.ScrollToAsync( 0,  masterStackLayout.Height - 750, false );


				await Task.Delay( TimeSpan.FromSeconds( 2 ) );
				masterScroll.Scrolled += OnMasterScrollScrolled;

			}
		}