Tôi đang cố gắng tạo tab với tablayout sau https://guides.codepath.com/android/Google-Play-Style-Tabs-using-TabLayout#add-custom-view-to-tablayoutTabLayout Biểu tượng không hiển thị
Bây giờ tôi đang cố gắng hiển thị biểu tượng thay vì văn bản bằng cách sử dụng hình ảnh. Nhưng nếu không có may mắn, bất cứ ai có thể giúp chỉ ra những gì còn thiếu trong hướng dẫn này?
Dưới đây là đoạn code
public class HomeActivity extends FragmentActivity {
//Fragments List
public ArrayList <Fragment> fragmentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
setUpFragmentList();
// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.home_viewpager);
viewPager.setAdapter(new HomeFragmentPagerAdapter(getSupportFragmentManager(), HomeActivity.this, fragmentList));
// Give the TabLayout the ViewPager
TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
//start this 2 are to set the tab to fill entire screen
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
//end this 2 are to set the tab to fill entire screen
tabLayout.setupWithViewPager(viewPager);
tabLayout.getTabAt(1).setIcon(R.drawable.ic_tab_down_activity);
}
private void setUpFragmentList() {
fragmentList = new ArrayList<>();
fragmentList.add(new MyActivitesFragment());
fragmentList.add(new ChatListFragment());
fragmentList.add(new QuickMatchFragment());
fragmentList.add(new FilterMatchFragment());
}
}
public class HomeFragmentPagerAdapter extends FragmentPagerAdapter {
private String tabTitles[] = new String[] { "Tab1", "Tab2", "Tab3" ,"Tab4"};
private Context context;
private ArrayList <Fragment> fragmentList;
private int[] imageResId = {
// unclicked
R.drawable.ic_tab_down_activity,
R.drawable.ic_tab_down_chat,
R.drawable.ic_tab_down_find,
R.drawable.ic_tab_down_filter,
};
public HomeFragmentPagerAdapter(FragmentManager fm, Context context, ArrayList <Fragment> fragmentList) {
super(fm);
this.context = context;
this.fragmentList = fragmentList;
}
@Override
public int getCount() {
return fragmentList.size();
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public CharSequence getPageTitle(int position) {
Drawable image = context.getResources().getDrawable(imageResId[position]);
image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight());
SpannableString sb = new SpannableString(" ");
ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM);
sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return sb;
}
}
Phần đó có vẻ ổn, hiển thị tất cả mã tab của bạn. –