TabLayout控件是2015年google大会上,google发布了新的Android Support Design
库,里面包含了几个新的控件,其中就有一个TabLayout,它就可以完成TabPageIndicator的效果,而且还是官方的,最好的是它可以兼容到2.2以上版本,包括2.2。
在android stutio应用TabLayout控件只要在build.gradle中加入compile 'com.android.support:design:23.2.0'即可。
一般实现顶部小菜单加侧滑,只要TabLayout+Viewpager就可以实现。
在activitylayout布局中添加TabLayout+Viewpager控件。
TabLayout中:在JAVA代码中:
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
在XML布局中:
app:tabGravity="fill"
app:tabMode="fixed"
其中,tabGravity有GRAVITY_CENTER 和 GRAVITY_FILL两种,GRAVITY_CENTER为居中,GRAVITY_FILL为尽可能填充。
tabMode有MODE_FIXED和MODE_SCROLLABLE两种,MODE_FIXED为固定tabs,并同时显示所有的tabs,MODE_SCROLLABLE为
可滚动tabs,显示一部分tabs,在这个模式下能包含长标签和大量的tabs,最好用于用户不需要直接比较tabs。
实现顶部小菜单加侧滑只要实现三个方法:
mViewPager.setAdapter(mAdapter);//给ViewPager设置适配器
mTabLayout.setTabsFromPagerAdapter(mAdapter);//给Tabs设置适配器
mTabLayout.setupWithViewPager(mViewPager);//将TabLayout和ViewPager关联起来。
其中PagerAdapter中多重写一个方法,
public CharSequence getPageTitle(int position) {
return titles[position]; //标题数组位置
}