引入依赖库
implementation 'com.android.support:design:28.0.0'
1.TabLayout
tablayout 我们通常配合ViewPager实现多Fragment
mtablayout = findViewById(R.id.tab_tab);
mviewpager = findViewById(R.id.tab_viewpager);
mviewpager.setOffscreenPageLimit(mname.length);
mviewpager.setAdapter(new PagerAdapter(getSupportFragmentManager()));
mviewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
Log.v(TAG, "Page改变:" + i);
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
//要放到监听事件的后面&不能是0 才会走onPageSelected()方法
mviewpager.setCurrentItem(0);
mtablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
Log.v(TAG, "选择Tab:" + tab.getText());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
//放在最后面
mtablayout.setupWithViewPager(mviewpager);
注意
- mtablayout.setupWithViewPager(mviewpager);要放到最后这样,onTabSelected()方法就算是第一次进入Activity,不用切换Tab也会调用;
- mviewpager.setCurrentItem(int position)设置设置当前选中页时,需要放在 viewpager.addOnPageChangeListener监听方法后面并且设置position不等于0,这样onPageSelected()方法就算是第一次进入Activity,不用切换Tab也会调用;