How to add page title and icon in android FragmentPagerAdapter
you can use :
myTabLayout.getTabAt(index).setIcon(R.drawable.myIcon);
I got solution from Stever.
Drawable myDrawable;
String title;
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
myDrawable = getResources().getDrawable(R.drawable.img_section1);
title = getResources().getString(R.string.title_section1);
break;
case 1:
myDrawable = getResources().getDrawable(R.drawable.img_section2);
title = getResources().getString(R.string.title_section2);
break;
case 2:
myDrawable = getResources().getDrawable(R.drawable.img_section3);
title = getResources().getString(R.string.title_section3);
break;
case 3:
myDrawable = getResources().getDrawable(R.drawable.img_section4);
title = getResources().getString(R.string.title_section4);
break;
case 4:
myDrawable = getResources().getDrawable(R.drawable.img_section5);
title = getResources().getString(R.string.title_section5);
break;
default:
//TODO: handle default selection
break;
}
SpannableStringBuilder sb = new SpannableStringBuilder(" " + title); // space added before text for convenience
try {
myDrawable.setBounds(5, 5, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight());
ImageSpan span = new ImageSpan(myDrawable, DynamicDrawableSpan.ALIGN_BASELINE);
sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return sb;
} catch (Exception e) {
// TODO: handle exception
}
Thank you stever.
If you are using the design support library TabLayout, you can simply call:
tabLayout.getTabAt(i).setIcon();
for me it worked like this :
@Override
public CharSequence getPageTitle(int position) {
SpannableStringBuilder sb;
ImageSpan span;
switch (position) {
case 0:
myDrawable = getResources().getDrawable(R.drawable.heart_18);
sb = new SpannableStringBuilder(" Page1"); // space added before text for convenience
myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight());
span = new ImageSpan(myDrawable, ImageSpan.ALIGN_BASELINE);
sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return sb;
case 1:
myDrawable = getResources().getDrawable(R.drawable.star_grey_18);
sb = new SpannableStringBuilder(" Page2"); // space added before text for convenience
myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight());
span = new ImageSpan(myDrawable, ImageSpan.ALIGN_BASELINE);
sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return sb;
case 2:
myDrawable = getResources().getDrawable(R.drawable.star_pink_18);
sb = new SpannableStringBuilder(" Page3"); // space added before text for convenience
myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight());
span = new ImageSpan(myDrawable, ImageSpan.ALIGN_BASELINE);
sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return sb;
}
}
}