private void SettingUpMenu()
 {
     try
     {
         var menuView = bottombar.GetChildAt(0) as BottomNavigationMenuView;
         if (menuView.ChildCount == 4)
         {
             BottomNavigationItemView item1 = (BottomNavigationItemView)menuView.GetChildAt(0);
             BottomNavigationItemView item2 = (BottomNavigationItemView)menuView.GetChildAt(1);
             BottomNavigationItemView item3 = (BottomNavigationItemView)menuView.GetChildAt(2);
             BottomNavigationItemView item4 = (BottomNavigationItemView)menuView.GetChildAt(3);
             item1.SetPadding(0, 0, 20, 0);
             item2.SetPadding(0, 0, 20, 0);
             item3.SetPadding(20, 0, 0, 0);
             item4.SetPadding(20, 0, 0, 0);
         }
         else if (menuView.ChildCount == 2)
         {
             BottomNavigationItemView item1 = (BottomNavigationItemView)menuView.GetChildAt(0);
             BottomNavigationItemView item2 = (BottomNavigationItemView)menuView.GetChildAt(1);
             item1.SetPadding(0, 0, 20, 0);
             item2.SetPadding(20, 0, 0, 0);
         }
         else
         {
             throw new Exception("Items should be equal to 2 or 4");
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Ejemplo n.º 2
0
        public static void SetShiftMode(this CurvedBottomNavigationView bottomNavigationView, bool enableShiftMode, bool enableItemShiftMode)
        {
            try
            {
                var menuView = bottomNavigationView.GetChildAt(0) as BottomNavigationMenuView;
                if (menuView == null)
                {
                    System.Diagnostics.Debug.WriteLine("Unable to find BottomNavigationMenuView");
                    return;
                }

                var shiftMode = menuView.Class.GetDeclaredField("mShiftingMode");

                shiftMode.Accessible = true;
                shiftMode.SetBoolean(menuView, enableShiftMode);
                shiftMode.Accessible = false;
                shiftMode.Dispose();


                for (int i = 0; i < menuView.ChildCount; i++)
                {
                    var item = menuView.GetChildAt(i) as BottomNavigationItemView;
                    if (item == null)
                    {
                        continue;
                    }

                    item.SetShiftingMode(enableItemShiftMode);
                    item.SetChecked(item.ItemData.IsChecked);
                }

                menuView.UpdateMenuView();
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine($"Unable to set shift mode: {ex}");
            }
        }