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

Posted

技术标签:

【中文标题】android: 如何从 Android Support Lib 版本 4 向 PagerTabStrip 添加图标/drawables?【英文标题】:android: How to add icons/drawables to the PagerTabStrip from the Android Support Lib version 4? 【发布时间】:2012-08-04 01:24:26 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

您可以使用 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;

【讨论】:

如果我想在字符串下面添加它会是什么。 @Vaibs 如果您能够在图标下方添加文字,请分享。谢谢。 请编辑您的答案以设置 myDrawable。效果很好。 它对我不起作用!我正在使用Drawable drawable = ContextCompat.getDrawable(getActivity(), R.drawable.blah_icon); 加载我的Drawable,并使用上面的确切代码(我在其他网站上也看到过,这似乎是一种常见的方法),我只是查看PagerTabStrip 中的文本部分。从来没有我的drawable。实在想不通为什么,其他人好像都没有问题…… @MatthewHousser 你明白了吗?我有同样的问题。我使用了 30dp 的可绘制对象,但没有运气。【参考方案2】:

@马修豪瑟 如果 SteveR 的解决方案不起作用,可能是因为您在 XML 中的 PagerTabStrip 中设置了固定大小。 这就是我所拥有的:

<android.support.v4.view.PagerTabStrip
        android:id="@+id/pager_tab_strip"
        android:layout_
        android:layout_>
</android.support.v4.view.PagerTabStrip>

这就是我现在拥有的:

<android.support.v4.view.PagerTabStrip
        android:id="@+id/pager_tab_strip"
        android:layout_
        android:layout_>
</android.support.v4.view.PagerTabStrip>

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

【讨论】:

我正在使用 TabLayout 并希望在顶部显示图标以及选项卡名称,例如顶部的选项卡图标及其下方的文本,有这个相关线程可以做到这一点 ***.com/questions/31260384/… 遵循 SteveR 解决方案,但它在我的情况下不起作用,我已经将 tablayout 高度设置为 wrap_content 但它仍然无法正常工作,所以请您帮忙?

以上是关于android: 如何从 Android Support Lib 版本 4 向 PagerTabStrip 添加图标/drawables?的主要内容,如果未能解决你的问题,请参考以下文章

Android AlertDialog

Android N安装apk报错:android.os.FileUriExposedException

android APP国际化一键切换实现

Android-碎片事务的add与hide

TextInputLayout

Facebook 广告集成到 Android 应用程序中