public override void SetAppearance(BottomNavigationView bottomView, IShellAppearanceElement appearance) { base.SetAppearance(bottomView, appearance); if (Build.VERSION.SdkInt < BuildVersionCodes.P) { return; } TypefaceSpan typefaceSpan = new TypefaceSpan(CustomShellRenderer.BottomTabTitleTypeface); for (int i = 0; i < bottomView.Menu.Size(); i++) { var menuItem = bottomView.Menu.GetItem(i); if (menuItem.TitleFormatted == null) { return; } SpannableStringBuilder spannableTitle = new SpannableStringBuilder(menuItem.TitleFormatted); spannableTitle.SetSpan(typefaceSpan, 0, spannableTitle.Length(), 0); menuItem.SetTitle(spannableTitle); } }
private static void HandleFormatRun(ISpannable spannableString, IAttributedTextRun run) { var attributes = run.Attributes; var start = run.Start; var end = start + run.Length; var fontName = attributes.GetFontName(); if (fontName != null) { var typefaceSpan = new TypefaceSpan(fontName); spannableString.SetSpan(typefaceSpan, start, end, SpanTypes.ExclusiveExclusive); } if (attributes.GetBold() && attributes.GetItalic()) { var span = new StyleSpan(TypefaceStyle.BoldItalic); spannableString.SetSpan(span, start, end, SpanTypes.ExclusiveExclusive); } else if (attributes.GetBold()) { var span = new StyleSpan(TypefaceStyle.Bold); spannableString.SetSpan(span, start, end, SpanTypes.ExclusiveExclusive); } else if (attributes.GetItalic()) { var span = new StyleSpan(TypefaceStyle.Italic); spannableString.SetSpan(span, start, end, SpanTypes.ExclusiveExclusive); } if (attributes.GetUnderline()) { var span = new UnderlineSpan(); spannableString.SetSpan(span, start, end, SpanTypes.ExclusiveExclusive); } var foregroundColor = attributes.GetForegroundColor()?.ParseAsInts()?.ToColor(); if (foregroundColor != null) { var span = new ForegroundColorSpan((global::Android.Graphics.Color)foregroundColor); spannableString.SetSpan(span, start, end, SpanTypes.ExclusiveExclusive); } var backgroundColor = attributes.GetBackgroundColor()?.ParseAsInts()?.ToColor(); if (backgroundColor != null) { var span = new BackgroundColorSpan((global::Android.Graphics.Color)backgroundColor); spannableString.SetSpan(span, start, end, SpanTypes.ExclusiveExclusive); } if (attributes.GetSubscript()) { var span = new SubscriptSpan(); spannableString.SetSpan(span, start, end, SpanTypes.ExclusiveExclusive); } if (attributes.GetSuperscript()) { var span = new SuperscriptSpan(); spannableString.SetSpan(span, start, end, SpanTypes.ExclusiveExclusive); } if (attributes.GetStrikethrough()) { var span = new StrikethroughSpan(); spannableString.SetSpan(span, start, end, SpanTypes.ExclusiveExclusive); } if (attributes.GetUnorderedList()) { var bulletSpan = new BulletSpan(); spannableString.SetSpan(bulletSpan, start, end, SpanTypes.ExclusiveExclusive); } }