Exemplo n.º 1
0
        private void BackOverBarTapped(object sender, EventArgs e)
        {
            if (!BVBar.IsVisible)
            {
                return;
            }

            var pageHeight = Height;

            if (_isNearByExpanded)
            {
                ImgFindVipTable.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                ImgFindVipTable.ScaleTo(_findVipTableInfoGridScale, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                SearchBarGrid.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                ImgSearchIcon.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                ImgSearchIcon.FadeTo(0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                FrNearBy.TranslateTo(0, pageHeight * _bottomPosition, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
            }
            else
            {
                ImgFindVipTable.TranslateTo(-(ImgFindVipTable.Margin.Left - 10), -(ImgFindVipTable.Margin.Top + 25), AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                ImgFindVipTable.ScaleTo(_findVipTableInfoGridScale * 0.75, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                SearchBarGrid.TranslateTo(0, ImgFindVipTable.Margin.Top + 25, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                ImgSearchIcon.TranslateTo(45, 0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                ImgSearchIcon.FadeTo(1, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                FrNearBy.TranslateTo(0, pageHeight - (pageHeight * _topPosition), AppThemeConstants.AnimationSpeed, Easing.SinInOut);
            }

            _isNearByExpanded = !_isNearByExpanded;
        }
Exemplo n.º 2
0
        private void CurrentLocationTapped(object sender, EventArgs e)
        {
            if (!_isNearByExpanded)
            {
                return;
            }

            var pageHeight = Height;

            var isLocationLabelVisible = LblLocation.IsVisible;

            var recentLocationStackSize      = RecentLocationStack.Measure(double.PositiveInfinity, double.PositiveInfinity);
            var currentAndRecentLocationSize = CurrentAndRecentLocationStack.Measure(double.PositiveInfinity, double.PositiveInfinity);
            var suggestionHeight             = LocationSuggestionStack.Measure(double.PositiveInfinity, double.PositiveInfinity);

            var suggestionMinHeight = Height * 0.28;
            var heighToBeSet        = Math.Max(suggestionMinHeight, suggestionHeight.Request.Height);

            LocationSuggestionStack.HeightRequest = heighToBeSet;

            var locationStackSize   = LocationStack.Measure(double.PositiveInfinity, double.PositiveInfinity);
            var locationStackHeight = Math.Max(currentAndRecentLocationSize.Request.Height + heighToBeSet + 90, locationStackSize.Request.Height);

            FrNearBy.TranslateTo(0, pageHeight - ((pageHeight * _topPosition) + (isLocationLabelVisible ? 71 : 0)), AppThemeConstants.AnimationSpeed, Easing.SinInOut);
            Thickness bottomGridMargin = BottomContainerGrid.Margin;

            bottomGridMargin.Bottom   += isLocationLabelVisible ? -71 : 71;
            BottomContainerGrid.Margin = bottomGridMargin;

            System.Diagnostics.Debug.WriteLine($"Location Stack Height : {locationStackHeight}, {isLocationLabelVisible}");
            if (isLocationLabelVisible)
            {
                LblLocation.TranslateTo(-80, 30, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                LblLocationSymbol.TranslateTo(-80, 30, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                SvBottomContainer.TranslateTo(0, locationStackHeight, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                LblLocation.IsVisible = false;
                LocationStack.Animate("ShowLocationStack", (x) =>
                {
                    LocationStack.HeightRequest = locationStackHeight * x;
                });
                LocationWithZipCodeStack.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
            }
            else
            {
                LocationWithZipCodeStack.TranslateTo(80, -30, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                SvBottomContainer.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                LocationStack.Animate("HideLocationStack", (x) =>
                {
                    LocationStack.HeightRequest = locationStackHeight * (1 - x);
                }, finished: (x, y) =>
                {
                    System.Diagnostics.Debug.WriteLine($"Finished callback : {x}, {y}");
                    LblLocation.IsVisible = true;
                });
                LblLocationSymbol.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                LblLocation.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
            }
        }
Exemplo n.º 3
0
        private void BackOverBarPanUpdated(object sender, PanUpdatedEventArgs e)
        {
            if (!BVBar.IsVisible)
            {
                return;
            }

            switch (e.StatusType)
            {
            case GestureStatus.Running:
                _previousYPosition = e.TotalY;
                FrNearBy.TranslateTo(0, e.TotalY, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                break;

            case GestureStatus.Completed:
                var pageHeight     = Height;
                var bottomPosition = pageHeight * _bottomPosition;
                var topPosition    = pageHeight - (pageHeight * _topPosition);

                if (_previousYPosition < 0)
                {
                    // Moving to top
                    ImgFindVipTable.TranslateTo(-(ImgFindVipTable.Margin.Left - 10), -(ImgFindVipTable.Margin.Top + 25), AppThemeConstants.AnimationSpeed, Easing.SinIn);
                    ImgFindVipTable.ScaleTo(_findVipTableInfoGridScale * 0.75, AppThemeConstants.AnimationSpeed, Easing.SinIn);
                    SearchBarGrid.TranslateTo(0, ImgFindVipTable.Margin.Top + 25, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                    ImgSearchIcon.TranslateTo(45, 0, AppThemeConstants.AnimationSpeed, Easing.SinIn);
                    ImgSearchIcon.FadeTo(1, AppThemeConstants.AnimationSpeed, Easing.SinIn);
                    FrNearBy.TranslateTo(0, topPosition, AppThemeConstants.AnimationSpeed, Easing.SinIn);
                    _isNearByExpanded = true;
                }
                else
                {
                    // Moving to bottom
                    ImgFindVipTable.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinOut);
                    ImgFindVipTable.ScaleTo(_findVipTableInfoGridScale, AppThemeConstants.AnimationSpeed, Easing.SinOut);
                    SearchBarGrid.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinInOut);
                    ImgSearchIcon.TranslateTo(0, 0, AppThemeConstants.AnimationSpeed, Easing.SinOut);
                    ImgSearchIcon.FadeTo(0, AppThemeConstants.AnimationSpeed, Easing.SinOut);
                    FrNearBy.TranslateTo(0, bottomPosition, AppThemeConstants.AnimationSpeed, Easing.SinOut);
                    _isNearByExpanded = false;
                }
                break;
            }
        }