xamarin-forms-tab-badge icon indicating copy to clipboard operation
xamarin-forms-tab-badge copied to clipboard

No badge displayed both on Android and iOS

Open Giulio64 opened this issue 4 years ago • 0 comments

I need to test this scenario: I have a reference to a tab bar menu in my App.xaml.cs so I can display badges from all over the app calling by calling a method, anyway I can't display any badges no matter what I do, both on iOS and Android, here is my tabbed page :

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Hangover.Pagine; using Plugin.Badge.Abstractions; using Xamarin.Forms; using Xamarin.Forms.PlatformConfiguration.AndroidSpecific; using Xamarin.Forms.Xaml;

namespace Hangover { [XamlCompilation(XamlCompilationOptions.Compile)] public partial class Menu : Xamarin.Forms.TabbedPage { private List<NavigationPage> pagine = new List<NavigationPage>();

    public Menu()
    {
        InitializeComponent();

        On<Xamarin.Forms.PlatformConfiguration.Android>().SetToolbarPlacement(ToolbarPlacement.Bottom);
        this.On<Xamarin.Forms.PlatformConfiguration.Android>().SetIsSwipePagingEnabled(false);

        this.pagine = new List<NavigationPage>() {

            new NavigationPage(new cp_PaginaUno()){
                Icon = "Eventi.png",
                Title = "Uno",
                BarBackgroundColor = Color.White,
                BarTextColor = Color.FromHex("#FF7F00")
            },
            new NavigationPage(new cp_PaginaDue()){
                Icon = "Search.png",
                Title = "Due",
                BarBackgroundColor = Color.White,
                BarTextColor = Color.FromHex("#FF7F00")
            }

        };

        foreach (NavigationPage pagina in pagine)
        {
            this.Children.Add(pagina);
        }

    }

    /// <summary>
    /// Imposta il numero di una pagina contenuta nel menu
    /// </summary>
    /// <returns><c>true</c>, if page badge value was set, <c>false</c> otherwise.</returns>
    public bool setBadgePagina(String pageName, Object value)
    {

        foreach (NavigationPage pagina in pagine)
        {
            if (pagina.CurrentPage.GetType().Name.Equals(pageName))
            {
                TabBadge.SetBadgeText(pagina, "1+");
                TabBadge.SetBadgeColor(pagina, Color.FromHex("#A0FFA500"));
                TabBadge.SetBadgeText(pagina.CurrentPage, "1+");
                TabBadge.SetBadgeColor(pagina.CurrentPage, Color.FromHex("#A0FFA500"));
            }

        }

        foreach (Page page in this.Children)
        {
            var x = page as NavigationPage;

            if (x.CurrentPage.GetType().Name.Equals(pageName))
            {
                TabBadge.SetBadgeText(x, "1+");
                TabBadge.SetBadgeColor(x, Color.FromHex("#A0FFA500"));
                TabBadge.SetBadgeText(x.CurrentPage, "1+");
                TabBadge.SetBadgeColor(x.CurrentPage, Color.FromHex("#A0FFA500"));

            }

        }


        return false;

    }
}

}

To try to display the badge I call from one page the setBadgePagina method:

public cp_PaginaUno() { InitializeComponent(); }

    public void gestisciGenerazioneNotifica(Object sender, EventArgs e)
    {
        TabBadge.SetBadgeText(this, "1+");
        TabBadge.SetBadgeColor(this, Color.FromHex("#A0FFA500"));
    }

nothing displayed.

Xamarin.Forms 4.4.0(last) Plugin.Badge 2.2.1

Giulio64 avatar Jan 10 '20 01:01 Giulio64