我想弄清楚如何使用以下库添加图标而不是文字 - https://github.com/astuetz/PagerSlidingTabStrip
有没有人知道是否有任何方法可以获得图标和文字?或者只是拥有图标而不是默认文字。
如果你能告诉我,那将非常感激。
答案 0 :(得分:4)
在寻呼机适配器中实施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 :(得分:0)
请按以下步骤操作: 1.将你的班级名称改为
public class SampleFragmentPagerAdapter extends FragmentPagerAdapter implements
PagerSlidingTabStrip.IconTabProvider {
声明drawable
final int [] icons = new int [] {R.drawable.a,R.drawable.b};
复制粘贴此功能
@覆盖 public int getPageIconResId(int position){ 返回图标[位置]; }
多数民众赞成。应该工作