使用 PagerSlidingTabStrip 添加图标而不是文本
Adding Icons instead of text with PagerSlidingTabStrip
我正在尝试弄清楚如何使用以下库添加图标而不是文本 - https://github.com/astuetz/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 和 return a 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. 将您的 class 名称设为
public class SampleFragmentPagerAdapter extends FragmentPagerAdapter implements
PagerSlidingTabStrip.IconTabProvider {
声明可绘制对象
final int[] icons = new int[]{R.drawable.a, R.drawable.b};
复制粘贴这个函数
@Override
public int getPageIconResId(int position) {
return 图标[位置];
}
就是这样。应该有效
我正在尝试弄清楚如何使用以下库添加图标而不是文本 - https://github.com/astuetz/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 和 return a 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. 将您的 class 名称设为
public class SampleFragmentPagerAdapter extends FragmentPagerAdapter implements
PagerSlidingTabStrip.IconTabProvider {
声明可绘制对象
final int[] icons = new int[]{R.drawable.a, R.drawable.b};
复制粘贴这个函数
@Override public int getPageIconResId(int position) { return 图标[位置]; }
就是这样。应该有效