2012-08-07 33 views

回答

49

您可以使用SpannableString或SpannableStringBuilder轻松地将图标/绘图添加到PageTabStrip。

例如,文本之前显示一个图标:

Drawable myDrawable; //Drawable you want to display 

@Override 
public CharSequence getPageTitle(int position) { 

    SpannableStringBuilder sb = new SpannableStringBuilder(" Page #"+ position); // space added before text for convenience 

    myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight()); 
    ImageSpan span = new ImageSpan(myDrawable, ImageSpan.ALIGN_BASELINE); 
    sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

    return sb; 
} 
+0

如果我想将它添加到字符串下面,它会是什么。 – Vaibs 2013-03-18 09:17:16

+0

@Vaibs如果您可以在图标下方添加文本,请分享。谢谢。 – iuq 2014-01-15 11:02:09

+1

请编辑您的答案以设置myDrawable。它运作良好。 – 2015-07-09 13:01:02

2

@MatthewHousser 如果SteveR的解决方案不起作用,可能是因为您在XML设置PagerTabStrip固定大小。 这是我有什么:

<android.support.v4.view.PagerTabStrip 
     android:id="@+id/pager_tab_strip" 
     android:layout_width="match_parent" 
     android:layout_height="30dp"> 
</android.support.v4.view.PagerTabStrip> 

这是我现在有:

<android.support.v4.view.PagerTabStrip 
     android:id="@+id/pager_tab_strip" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
</android.support.v4.view.PagerTabStrip> 

的图像在第一种情况下并没有显示出来,并显示在第二种情况下。希望它会有所帮助。