public override void ViewWillAppear(bool animated) { if (toolBarItem != null) { MainViewModel viewModel = (toolBarItem.BindingContext as FoodsViewModel)?.MainViewModel; UIButton button = UIButton.FromType(UIButtonType.Custom); button.Frame = new CGRect(0, -5, 25, 25); button.SetImage(UIImage.FromFile("ic_shopping_cart_white_2x.png"), UIControlState.Normal); button.TouchUpInside += (s, e) => { var tool = s as UIButton; var command = buttonCommands[tool]; command.Execute(null); }; buttonCommands.Add(button, toolBarItem.Command); BadgeBarButtonItem barButtonItem = new BadgeBarButtonItem(button); NavigationBar.Items[0].RightBarButtonItem = barButtonItem; viewModel.BasketViewModel .WhenAnyValue(x => x.OrdersCount) .Subscribe(x => { barButtonItem.BadgeValue = x.ToString(); }); } base.ViewWillAppear(animated); }
public override void ViewDidLoad() { base.ViewDidLoad(); NavigationItem.SetLeftBarButtonItem( new UIBarButtonItem(UIImage.FromBundle("threelines.png") , UIBarButtonItemStyle.Plain , (sender, args) => { SidebarController.ToggleMenu(); }), true); //PreferenceHandler prefHandler = new PreferenceHandler(); UserDetails userDetail = PreferenceHandler.GetUserDetails(); if (PreferenceHandler.GetUserDetails().RoleId == (int)USER_ROLE.ADMIN) { btnBadge = new UIButton() { Frame = new CGRect(0, 0, 25, 25), }; btnBadge.SetBackgroundImage(UIImage.FromBundle("Notification_Icon.png"), UIControlState.Normal); btnBadge.SetTitleColor(UIColor.White, UIControlState.Normal); btnBadge.TouchUpInside += BtnBadge_TouchUpInside; btnAlertsBadge = new BadgeBarButtonItem(btnBadge); btnAlertsBadge.BadgeValue = UIApplication.SharedApplication.ApplicationIconBadgeNumber.ToString(); btnAlertsBadge.Style = UIBarButtonItemStyle.Plain; btnAlertsBadge.ShouldHideBadgeAtZero = true; btnAlertsBadge.BadgeOriginX = 10; NavigationItem.SetRightBarButtonItem(btnAlertsBadge, true); } }
public override void ViewDidLoad() { base.ViewDidLoad(); int counter = 42; // Use a UIButton as customView to handle touch events var customButton = new UIButton(new CGRect(0, 0, 32, 32)); customButton.SetImage(UIImage.FromBundle(@"trolley"), UIControlState.Normal); // Create the custom BadgeBarButtonItem var barButton = new BadgeBarButtonItem(customButton) { // Set an initial value and position for the badge BadgeValue = counter.ToString(), BadgeOriginX = _positions[_positions.Length - 1].Item1, BadgeOriginY = _positions[_positions.Length - 1].Item2, }; // Reset the badge when tapping on the customButton customButton.TouchUpInside += (sender, e) => { counter = 0; barButton.BadgeValue = counter.ToString(); }; // Add the actions to the other buttons // add an item to the cart ButtonAdd.TouchUpInside += (sender, e) => { barButton.BadgeValue = (++counter).ToString(); }; var i = 0; // Cycle through the colors ButtonChangeColor.TouchUpInside += (sender, e) => { var c = _colors[i++]; barButton.BadgeBGColor = c; barButton.BadgeTextColor = c == UIColor.White || c == UIColor.Yellow ? UIColor.Black : UIColor.White; if (i >= _colors.Length) { i = 0; } }; var j = 0; // Cycle through the positions ButtonChangePosition.TouchUpInside += (sender, e) => { barButton.BadgeOriginX = _positions[j].Item1; barButton.BadgeOriginY = _positions[j].Item2; j++; if (j >= _positions.Length) { j = 0; } }; var k = 0; // Cycle through the border colors ButtonChangeBorderColor.TouchUpInside += (sender, e) => { if (barButton.BadgeBorderWidth == 0) { barButton.BadgeBorderWidth = 1; } var c = _colors[k++]; barButton.BadgeBorderColor = c; if (k >= _colors.Length) { k = 0; barButton.BadgeBorderWidth = 0; } }; // Add the barButton as the RightBarButtonItem of the navigation bar this.NavigationItem.RightBarButtonItem = barButton; }