dewango / BottomNavigationBarXF

Bottom Navigation Bar for Xamarin Forms
MIT License
187 stars 97 forks source link

BadgeCount throwing error #89

Open ghost opened 6 years ago

ghost commented 6 years ago

Cannot assign property "BadgeCount": Property does not exists, or is not assignable, or mismatching type between value and property.

jonathan-jd4software commented 6 years ago

I have the same issue, no access to BadgeCount or BadgeColor.

C0D3On3 commented 6 years ago

All,

The changes were committed but the nuget package containing those changes were never released hence why you can't see those properties. To use, download source, build a release and package a local nuget file with the changes and consume that in your project. That'll do the trick.

jonathan-jd4software commented 6 years ago

Thanks for the information @RyanJosephVI. An update to the nuget package at some time, would be great for the community; it might save you from lots of messages too.

C0D3On3 commented 6 years ago

Sure thing @jonathan-jd4software I agree a new nuget package would be great but I'm not the project owner. Just a community member like yourself sharing how I got around this issue.

jonathan-jd4software commented 6 years ago

Sorry @RyanJosephVI my mistake :)

mario-velasco commented 6 years ago

Hi there, I update BottomNavigationBar, Xamarin.Forms and change the pcl to netstandard and fix the issue!

shivanimangla13 commented 6 years ago

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

image

Phenek commented 6 years ago

Hey People no Solid answer here! Maybe you already known? But with Xamarin.Forms 3.x you can put the Android Tabbed page at the Bottom and it's official!

I found this https://montemagno.com/xamarin-forms-official-bottom-navigation-bottom-tabs-on-android/

And the Xabre's Tab Badge Library , they did a Pre-release 2.1.0-pre.3 to support badges on it