Przykład ten jest tworzony w Xamarin przy użyciu C#, jeśli znasz odpowiedź w Javie, będę w stanie przekształcić go w C# zaPokaż ikony na FragmentPagerAdapter kartach
Używam FragmentPagerAdapter do wyświetlenia trzy różne Fragmenty jako Tabulatory. Jestem w stanie wyświetlić jakiś tekst w nagłówkach Tab tak:
public override Java.Lang.ICharSequence GetPageTitleFormatted(int position)
{
return new Java.Lang.String("Tab: " + position);
}
Działa to dobrze: Widzę trzy zakładki z tytułami Tab: 0
, Tab: 1
i Tab: 2
.
Teraz chcę zastąpić tekst niektórymi ikonami. Próbuję to zrobić tak samo jak z PagerSlidingTabStrip, używając SpannableString
.
public override Java.Lang.ICharSequence GetPageTitleFormatted(int position)
{
var image = Application.Context.Resources.GetDrawable(Resource.Drawable.icon);
image.SetBounds(0, 0, image.IntrinsicWidth, image.IntrinsicHeight);
var spannableString = new Android.Text.SpannableString("[icon]");
var imageSpan = new Android.Text.Style.ImageSpan(image, Android.Text.Style.SpanAlign.Bottom);
spannableString.SetSpan(imageSpan, 0, 1, Android.Text.SpanTypes.ExclusiveExclusive);
return spannableString;
}
Niestety, co widzę teraz jest trzy razy [icon]
jako nagłówki. Wygląda to tak, jakby ikony nie zostały w ogóle dodane do nagłówków.
Czy robię coś nie tak? Dzięki za pomoc!
Dzięki! * facepalm * – MarcoK
Spróbowałem tego i zastosowałem ten styl do Tablayout tak: android: textAppearance = "@ style/MyCustomTabLayout" Ale to nie działa Właśnie dostałem "[ikona]" String –
Masz rację. Musisz zastosować styl do TabLayout. Zmienię moją odpowiedź. –