我在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),如果我导航至没有对象的产品详细信息页面,则徽章可以完美地显示在同一页面上。另一方面,如果我使用对象导航到产品详细信息页面,则徽章显示在主页上,而不显示在产品详细信息页面上。
预先感谢