【发布时间】:2015-06-24 12:03:34
【问题描述】:
我试图弄清楚如何使用以下库添加图标而不是文本 - https://github.com/astuetz/PagerSlidingTabStrip
有谁知道有没有什么办法可以有图标和文字?或者只使用图标而不是默认文本。
如果您能告诉我,我们将不胜感激。
【问题讨论】:
标签: android pagerslidingtabstrip
我试图弄清楚如何使用以下库添加图标而不是文本 - https://github.com/astuetz/PagerSlidingTabStrip
有谁知道有没有什么办法可以有图标和文字?或者只使用图标而不是默认文本。
如果您能告诉我,我们将不胜感激。
【问题讨论】:
标签: android pagerslidingtabstrip
在您的寻呼机适配器中实现 IconTabProvider 接口。例如:
public class MyPagerAdapter extends FragmentPagerAdapter implements IconTabProvider {
private int icons[] = {R.drawable.firstIcon, R.drawable.secondIcon, R.drawable.thirdIcon};
public MyPagerAdapter (FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 3; // number of pages
}
@Override
public Fragment getItem(int position) {
return MyFragment.newInstance(position);
}
@Override
public int getPageIconResId(int position) {
return icons[position];
}
}
编辑:
要添加图标和文本,请使用 getPageTitle 并返回一个 spannable:
@Override
public CharSequence getPageTitle(int position) {
// Generate title based on item position
Drawable image = context.getResources().getDrawable(icons[position]);
image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight());
// Replace blank spaces with image icon
SpannableString sb = new SpannableString(" " + tabTitles[position]);
ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM);
sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return sb;
}
【讨论】:
按照以下步骤操作: 1. 让你的班级名称为
public class SampleFragmentPagerAdapter extends FragmentPagerAdapter implements
PagerSlidingTabStrip.IconTabProvider {
声明可绘制
final int[] icons = new int[]{R.drawable.a, R.drawable.b};
复制粘贴此功能
@覆盖 公共 int getPageIconResId(int position) { 返回图标[位置]; }
就是这样。应该工作
【讨论】: