tabwidget难以显示图标

时间:2018-06-18 09:22:14

标签: android tabwidget

在我的xamarin android应用程序中,我的布局中有一个TabWidget。问题是我想将图像设置到选项卡但从未显示过。我只看到文字。我不知道错了。

这是我的tabWidget的

<TabWidget
   android:id="@android:id/tabs"
   android:layout_width="match_parent"
   android:layout_height="0dp"
   android:layout_weight="45" />

在我的活动中,我有这段代码

CreateTab(typeof(ErythemaGraph), GetString(Resource.String.erythema), GetString(Resource.String.erythema), Resource.Drawable.ic_tab_erythema);
CreateTab(typeof(VitaminDGraph), GetString(Resource.String.vitaminD), GetString(Resource.String.vitaminD), Resource.Drawable.ic_tab_vitaminD);
CreateTab(typeof(AgeingGaph), GetString(Resource.String.ageing), GetString(Resource.String.ageing), Resource.Drawable.ic_tab_ageing);

var tabHost = FindViewById<TabHost>(Android.Resource.Id.TabHost);
tabHost.CurrentTab = PreExposureActivityFragment.tabView;

var tabWidget = FindViewById<TabWidget>(Android.Resource.Id.Tabs);

for (int i = 0; i < tabWidget.ChildCount; ++i)
{
    View tabView = tabWidget.GetChildTabViewAt(i);                
    TextView tv = (TextView)tabView.FindViewById(Android.Resource.Id.Title);
    tv.Typeface = Typeface.CreateFromAsset(ssets, "fonts/Montserrat_Light.ttf");
}

这是CreateTab方法

private void CreateTab(Type activityType, string tag, string label, int drawableId)
    {
        var intent = new Intent(this, activityType);
        intent.AddFlags(ActivityFlags.NewTask);

        var spec = TabHost.NewTabSpec(tag);
        var drawableIcon = Resources.GetDrawable(drawableId);
        spec.SetIndicator(label, drawableIcon);
        spec.SetContent(intent);

        TabHost.AddTab(spec);
    }

这是传递可绘制资源的一个例子

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/ic_tab_purple"
      android:state_selected="true"/>

<item android:drawable="@drawable/ic_tab_grey"/>
</selector>

0 个答案:

没有答案