List<DemoFragment> fragments = new ArrayList<>();
myFragments.add(DemoFragment.getInstance(0));
myFragments.add(DemoFragment.getInstance(1));
MyFragmentAdapter fragmentAdapter = new MyFragmentAdapter(this, getSupportFragmentManager(),
stringList,
fragments);
vp.setAdapter(fragmentAdapter);
tab.setupWithViewPager(vp);
vp.setCurrentItem(0);
setRedDot(fragmentAdapter);
//设置tablayout的选中监听
tab.addOnTabSelectedListener(new MyTabSelectedListener());
private void setRedDot(MyFragmentAdapter adapter) {
//设置小红点
for (int i = 0; i < tab.getTabCount(); i++) {
View tabView = adapter.getTabView(i);
ImageView ivRedDot = (ImageView) tabView.findViewById(R.id.iv_tab_red);
//小红点是否显示
if (i % 2 == 0) {
ivRedDot.setVisibility(View.GONE);
} else {
ivRedDot.setVisibility(View.VISIBLE);
}
tab.getTabAt(i).setCustomView(tabView);
//默认第一页,这句很重要,不然tab的初始状态不对
TextView tvTitle = (TextView) tabView.findViewById(R.id.tv_tab_title);
if (i == 0) {
tvTitle.setTextColor(getResources().getColor(R.color.colorPrimary));
} else {
tvTitle.setTextColor(getResources().getColor(R.color.black));
}
}
}
class MyTabSelectedListener implements TabLayout.OnTabSelectedListener {
@Override
public void onTabSelected(TabLayout.Tab tab) {
int position = tab.getPosition();
View customView = tab.getCustomView();
customView.findViewById(R.id.iv_tab_red).setVisibility(View.GONE);
TextView tvTitle = (TextView) customView.findViewById(R.id.tv_tab_title);
tvTitle.setTextColor(getResources().getColor(R.color.colorPrimary));
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
View customView = tab.getCustomView();
TextView tvTitle = (TextView) customView.findViewById(R.id.tv_tab_title);
tvTitle.setTextColor(getResources().getColor(R.color.black));
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
}