Mar*_*coK 6 tabs android xamarin
这个例子是在Xamarin中使用C#创建的,如果你在Java中知道答案,我也可以将它转换为C#
我正在使用FragmentPagerAdapter将三个不同的片段显示为Tabs.我可以在Tab标题中显示一些文本,如下所示:
public override Java.Lang.ICharSequence GetPageTitleFormatted(int position)
{
return new Java.Lang.String("Tab: " + position);
}
Run Code Online (Sandbox Code Playgroud)
这很好用:我看到三个带标题的标签Tab: 0,Tab: 1和Tab: 2.
现在,我想用一些图标替换文本.我正在尝试这样做与使用&的PagerSlidingTabStrip相同.SpannableStringImageSpan
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;
}
Run Code Online (Sandbox Code Playgroud)
可悲的是,我现在看到的是[icon]标题的三倍.看起来好像图标根本没有添加到标题中.
我在这里做错了吗?谢谢你的帮助!
You*_*bos 13
默认情况下,TabLayout创建的选项卡将textAllCaps属性设置为true,这会阻止ImageSpans呈现.您可以通过更改tabTextAppearance属性来覆盖此行为.
<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
<item name="tabTextAppearance">@style/MyCustomTextAppearance</item>
</style>
<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
<item name="textAllCaps">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后你可以将MyCustomTabLayout样式添加到TabLayout,如下所示:
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/MyCustomTabLayout" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4997 次 |
| 最近记录: |