25

android: 如何从 Android Support Lib 版本 4 向 PagerTabStrip 添加图标/drawables?

对于了解 PagerTabStrip 的人来说,这是一个非常具体的问题,我在任何地方都找不到足够的示例,它在某种程度上是新的(PagerTabStrip),所以我找不到足够的信息。

4

2 回答 2

53

您可以使用 SpannableString 或 SpannableStringBuilder 轻松地将图标/drawable 添加到 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;
}
于 2012-10-11T10:35:05.590 回答
3

@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>

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

于 2016-05-03T14:53:33.550 回答