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