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