private void HandleOptionClicked(RadialMenuItem item, Enumerations.Enumerations.RadialMenuLocation value)
 {
     item.GestureRecognizers.Clear();
     item.GestureRecognizers.Add(new TapGestureRecognizer()
     {
         Command = new Command(async() =>
         {
             ParentInBackgroundItem = item;
             ItemTapped?.Invoke(this, value);
             if (item.ChildItems?.Count > 0)
             {
                 IsChildItemOpened = true;
                 await HideButtons(ParentInBackgroundItem.ChildItems);
                 CloseMenu(item);//Navigate to submenu
             }
             else
             {
                 IsOpened          = false;
                 IsChildItemOpened = false;
                 CloseMenu();
             }
         }),
         NumberOfTapsRequired = 1
     });
 }
Example #2
0
 private void HandleOptionClicked(RadialMenuItem item, Enumerations.Enumerations.RadialMenuLocation value)
 {
     item.GestureRecognizers.Add(new TapGestureRecognizer()
     {
         Command = new Command(() =>
         {
             ItemTapped?.Invoke(this, value);
             CloseMenu();
         }),
         NumberOfTapsRequired = 1
     });
 }
        private void HandleChildOptionClicked(RadialMenuItem parentItem, Enumerations.Enumerations.RadialMenuLocation value)
        {
            parentItem.GestureRecognizers.Clear();
            parentItem.GestureRecognizers.Add(new TapGestureRecognizer()
            {
                Command = new Command(async() =>
                {
                    //IsOpened = false;
                    ChildItemTapped?.Invoke(this, new Models.ChildItemTapped()
                    {
                        Parent = ParentInBackgroundItem, ItemTapped = value
                    });
                    if (CloseMenuWhenChildTapped)
                    {
                        IsOpened          = false;
                        IsChildItemOpened = false;
                        if (!_isAnimating)
                        {
                            _isAnimating = true;

                            InnerButtonMenu.IsVisible  = true;
                            InnerButtonClose.IsVisible = false;
                            BackButton.IsVisible       = true;

                            await HideButtons(ParentInBackgroundItem.ChildItems);

                            InnerButtonClose.RotateTo(0, _animationDelay);
                            InnerButtonClose.FadeTo(0, _animationDelay);

                            BackButton.RotateTo(0, _animationDelay);
                            BackButton.FadeTo(0, _animationDelay);

                            InnerButtonMenu.RotateTo(0, _animationDelay);
                            InnerButtonMenu.FadeTo(1, _animationDelay);

                            ClearGridButtons();

                            await OuterCircle.ScaleTo(1, (uint)MenuCloseAnimationDuration, MenuCloseEasing);


                            InnerButtonClose.IsVisible = false;
                            BackButton.IsVisible       = false;

                            BackButton.GestureRecognizers.Clear();
                            InnerButtonMenu.GestureRecognizers.Clear();
                            InnerButtonClose.GestureRecognizers.Clear();
                            HandleMenuCenterClicked();
                            HandleCloseClicked();

                            foreach (var i in MenuItemsSource)
                            {
                                var item = i as RadialMenuItem;
                                //OrganizeItem(item);
                                mainGrid.Children.Add(item);
                                //HandleOptionClicked(item, item.Location);
                            }

                            _isAnimating = false;
                        }
                    }
                    else
                    {
                        GoBack();
                    }
                }),
                NumberOfTapsRequired = 1
            });
        }