如何以Xamarin形式添加徽章?

时间:2019-06-17 11:47:05

标签: xamarin.forms

我在ToolbarItemBadgeSample之后在Xamarin.Forms中创建了徽章。
我在MasterDetailPage中添加了它,我的主页在工具栏中有购物车图标。在主页上点击产品时,应导航到带有产品ID的产品详细信息页面。

我在这里面临的问题是

1),即使代码完美运行,加载主页时也不会显示徽章。

public mainpage ()
{
    InitializeComponent();
    if (ToolbarItems.Count > 0)
    {
        DependencyService.Get<IToolbarItemBadgeService>().SetBadge(this, ToolbarItems.First(), $"{count}", Color.Red, Color.White);
    }
}
public class ToolbarItemBadgeService : IToolbarItemBadgeService
{
    public void SetBadge(Page page, ToolbarItem item, string value, Color backgroundColor, Color textColor)
    {
         Device.BeginInvokeOnMainThread(() =>
         {
              var toolbar = CrossCurrentActivity.Current.Activity.FindViewById(Resource.Id.toolbar) as Android.Support.V7.Widget.Toolbar;
              if (toolbar != null)
              {
                  if (!string.IsNullOrEmpty(value))
                  {
                      var some = toolbar.Menu.Size();
                      var idx = page.ToolbarItems.IndexOf(item);
                      if (toolbar.Menu.Size() > idx)
                      {
                          var menuItem = toolbar.Menu.GetItem(idx);                          
                          BadgeDrawable.SetBadgeText(CrossCurrentActivity.Current.Activity, menuItem, value, backgroundColor.ToAndroid(), textColor.ToAndroid());
                       }
                  }
              }
        });
    }
} 

2),如果我导航至没有对象的产品详细信息页面,则徽章可以完美地显示在同一页面上。另一方面,如果我使用对象导航到产品详细信息页面,则徽章显示在主页上,而不显示在产品详细信息页面上。

预先感谢

0 个答案:

没有答案