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?的主要内容,如果未能解决你的问题,请参考以下文章