private double GetPossibleMinHeightForSuggestionContainer() { var containerSize = SuggestionsContainerStack.Measure(double.PositiveInfinity, double.PositiveInfinity); var suggestionsContainer = SuggestionsContainer.Measure(double.PositiveInfinity, double.PositiveInfinity); double tempHeight = Math.Min(containerSize.Request.Height, Math.Min(suggestionsContainer.Request.Height + 20, SuggestionsContainerStack.Height)); System.Diagnostics.Debug.WriteLine($"Container Size : {containerSize}, SuggestionContianer Size : {suggestionsContainer}, Actual = {SuggestionsContainerStack.Height}, Height To be Set : {tempHeight}"); return(tempHeight); }
private void ShowSuggestionsContainerWithAnimation() { if (Device.RuntimePlatform.Equals(Device.Android)) { SuggestionsTitlesStack.IsVisible = true; } SuggestionsContainerStack.Animate("ShowContainer", x => { double tempHeight = GetPossibleMaxHeightForSuggestionContainer(); SuggestionsContainerStack.HeightRequest = tempHeight * x; }); }
private async Task HideSuggestionsContainerWithAnimation() { SuggestionsContainerStack.Animate("HideContainer", x => { double tempHeight = GetPossibleMinHeightForSuggestionContainer(); SuggestionsContainerStack.HeightRequest = tempHeight * (1 - x); }); if (Device.RuntimePlatform.Equals(Device.Android)) { SuggestionsTitlesStack.IsVisible = false; await Task.Delay((int)AppThemeConstants.AnimationSpeed); SuggestionsContainerStack.IsVisible = false; } }