public class MainActivity extends AppCompatActivity {
private TabLayout tblNews;
private ViewPager vpNews;
private List<String> titles;
private List<Fragment> fragmentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
titles = new ArrayList<>();
titles.add("热门");
titles.add("推荐");
titles.add("新闻");
fragmentList = new ArrayList<>();
for (String title : titles) {
// 和ViewPager配合使用的时候不需要添加这句话,只需要重写ViewPager适配器的getPageTitle方法
tblNews.addTab(tblNews.newTab().setText(title));
// NewsFragment newsFragment = NewsFragment.newInstance(title);
fragmentList.add(new NewsFragment());
}
// 设置TabLayout的模式是超出屏幕可滑动,不超出就显示在左侧
// tblNews.setTabMode(TabLayout.MODE_SCROLLABLE);
// 设置固定模式,默认
tblNews.setTabMode(TabLayout.MODE_FIXED);
// 设置标签的文本颜色
tblNews.setTabTextColors(ColorStateList.valueOf(Color.BLACK));
vpNews.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
return fragmentList.size();
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
/**
* TabLayout上显示的文字
* @param position
* @return
*/
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
});
tblNews.setupWithViewPager(vpNews);
}
private void initView() {
tblNews = findViewById(R.id.tbl_news);
vpNews = findViewById(R.id.vp_news);
}