使用PagerSlidingTabStrip添加图标而不是文本

时间:2015-06-24 12:03:34

标签: android pagerslidingtabstrip

我想弄清楚如何使用以下库添加图标而不是文字 - https://github.com/astuetz/PagerSlidingTabStrip

有没有人知道是否有任何方法可以获得图标和文字?或者只是拥有图标而不是默认文字。

如果你能告诉我,那将非常感激。

2 个答案:

答案 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 {
  1. 声明drawable

    final int [] icons = new int [] {R.drawable.a,R.drawable.b};

  2. 复制粘贴此功能

    @覆盖 public int getPageIconResId(int position){     返回图标[位置]; }

  3. 多数民众赞成。应该工作