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