Open mosflex opened 6 years ago
Do you found any Solution for this as I am stuck with the same!
Add custom renderer for iOS. It worked for me :) .
"using System; using BottomBar.XamarinForms; using Xamarin.Forms; using Xamarin.Forms.Platform.iOS; using SchoolApp.iOS; using System.ComponentModel;
[assembly: ExportRenderer(typeof(BottomBarPage), typeof(BottomBarPageRenderer))] namespace SchoolApp.iOS { class BottomBarPageRenderer : TabbedRenderer {
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
BottomBarPage bottomBarPage = e.NewElement as BottomBarPage;
AddPropertyChangedHandlersForPages();
}
}
void AddPropertyChangedHandlersForPages()
{
BottomBarPage bottomBarPage = Element as BottomBarPage;
foreach (var page in bottomBarPage.Children)
{
page.PropertyChanged += OnPagePropertyChanged;
UpdateTabBadge(page);
}
}
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
BottomBarPage bottomBarPage = Element as BottomBarPage;
foreach (var page in bottomBarPage.Children)
{
UpdateTabBadge(page);
}
}
void OnPagePropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == BottomBarPageExtensions.BadgeCountProperty.PropertyName)
{
UpdateTabBadge((Page)sender);
}
}
private void UpdateTabBadge(Page page)
{
if (TabBar != null && TabBar.Items != null)
{
var badgeCount = BottomBarPageExtensions.GetBadgeCount(page);
var tabIndex = Tabbed.Children.IndexOf(page);
TabBar.Items[tabIndex].BadgeValue = (badgeCount == 0 ? null : badgeCount.ToString());
}
}
} } "
BottomBarPageExtensions.SetBadgeCount work on Android but not iOS. I forgot something ?