1是先引入这个库
2在布局中加入TabLayout控件
<android.support.design.widget.TabLayout
android:id="@+id/mytab"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
></android.support.design.widget.TabLayout>
3在java代码中添加Tab实现选项卡效果
public class MainActivity extends AppCompatActivity {
TabLayout mytab;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mytab = (TabLayout) findViewById(R.id.mytab);
mytab.addTab(mytab.newTab().setText("选项卡一").setIcon(R.mipmap.ic_launcher));
}
4设置Tab滚动方式
可滚动
app:tabMode=“scrollable”
固定
app:tabMode=“fixed”
5(可有可无)
TabLayout的监听事件
选中了某个tab的监听事件OnTabSelectedListener():
setOnTabSelectedListener()这个方法已经被抛弃了,现在一般使用addOnTabSelectedListener
mytab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// 添加选中Tab的逻辑
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
// 添加未选中Tab的逻辑
}
6将TabLayout和ViewPager关联
mytab.setupWithViewPager(mViewPager);
7
在Java代码中定义两个List集合,一个放TabLayout标题Title,一个放TabLayout内容Fragment
List mTitle;
List mFragment;
给这两个集合添加内容
mTitle = new ArrayList<>();
mTitle.add(“选项卡一”);
mTitle.add(“选项卡二”);
mTitle.add(“选项卡三”);
mTitle.add(“选项卡四”);
mFragment = new ArrayList<>();
mFragment.add(new Fragment());
mFragment.add(new Fragment());
mFragment.add(new Fragment());
mFragment.add(new Fragment());
8给ViewPager创建适配器,将Title和Fragment添加进ViewPager中
mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return mFragment.get(position);
}
@Override
public int getCount() {
return mFragment.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTitle.get(position);
}
});
10全部代码
public class MainActivity extends AppCompatActivity {
TabLayout mytab;
ViewPager mViewPager;
List<String> mTitle;
List<Fragment> mFragment;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mytab = (TabLayout) findViewById(R.id.mytab);
mViewPager = (ViewPager) findViewById(R.id.mViewPager);
mTitle = new ArrayList<>();
mTitle.add("选项卡一");
mTitle.add("选项卡二");
mTitle.add("选项卡三");
mTitle.add("选项卡四");
mFragment = new ArrayList<>();
mFragment.add(new Fragment());
mFragment.add(new Fragment());
mFragment.add(new Fragment());
mFragment.add(new Fragment());
mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return mFragment.get(position);
}
@Override
public int getCount() {
return mFragment.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTitle.get(position);
}
});
mytab.setupWithViewPager(mViewPager);
}
}