TabLayout
程序员文章站
2022-06-01 09:10:03
...
TabLayout
2017/10/18 9:06:05
添加依赖
compile 'com.android.support:design:26.0.0-alpha1'
属性 ##
使用之前注意添加
xmlns:app="http://schemas.android.com/apk/res-auto"
- app:tabSelectedTextColor : Tab被选中字体的颜色
- app:tabTextColor : Tab未被选中字体的颜色
- app:tabIndicatorColor : Tab指示器下标的颜色
- app:tabBackground : 整个Tab的颜色
- app:tabTextAppearance : 改变字体样式
- app:tabIndicatorHeight : 指示器小标的高度
- app:tabMode : 模式 默认 fixed 固定 scrollable 可以滑动
- app:tabGravity : 内容显示模式
- app:tabMaxWidth :最大宽度
- app:tabMinWidth :最小宽度
- app:tabContentStart : 开始位置的偏移量
使用方式
1
在TabLayout布局文件中添加TabItem
- 效果
-
布局文件代码
2
在代码中添加
- 效果
-
代码
//查找控件 tab_layout = (TabLayout) findViewById(R.id.tab_layout); //添加tab tab_layout.addTab(tab_layout.newTab().setText("国际")); tab_layout.addTab(tab_layout.newTab().setText("国内")); tab_layout.addTab(tab_layout.newTab().setText("娱乐")); tab_layout.addTab(tab_layout.newTab().setText("电影")); tab_layout.addTab(tab_layout.newTab().setText("音乐")); tab_layout.addTab(tab_layout.newTab().setText("图片")); tab_layout.addTab(tab_layout.newTab().setText("游戏")); tab_layout.addTab(tab_layout.newTab().setText("出行"));
添加图标
- 效果
-
代码
tab_layout.addTab(tab_layout.newTab().setText("国际").setIcon(R.drawable.test)); tab_layout.addTab(tab_layout.newTab().setText("国内").setIcon(R.drawable.test)); tab_layout.addTab(tab_layout.newTab().setText("娱乐").setIcon(R.drawable.test)); tab_layout.addTab(tab_layout.newTab().setText("电影").setIcon(R.drawable.test)); tab_layout.addTab(tab_layout.newTab().setText("音乐").setIcon(R.drawable.test)); tab_layout.addTab(tab_layout.newTab().setText("图片").setIcon(R.drawable.test)); tab_layout.addTab(tab_layout.newTab().setText("游戏").setIcon(R.drawable.test)); tab_layout.addTab(tab_layout.newTab().setText("出行").setIcon(R.drawable.test));
TabLayout + ViewPager + Fragment
效果
代码
//集合存入标题
list.add("关注");
list.add("推荐");
list.add("热点");
list.add("汽车");
list.add("科技");
list.add("视频");
list.add("数码");
//设置适配器
view_pager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) {
/**
* 标题
* @param position
* @return
*/
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
/**
* 返回对应的Fragment
* @param position
* @return
*/
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Fragment_0();
break;
case 1:
fragment = new Fragment_1();
break;
case 2:
fragment = new Fragment_2();
break;
case 3:
fragment = new Fragment_3();
break;
case 4:
fragment = new Fragment_4();
break;
case 5:
fragment = new Fragment_5();
break;
case 6:
fragment = new Fragment_6();
break;
default:
break;
}
return fragment;
}
/**
* 条目数
* @return
*/
@Override
public int getCount() {
return list.size();
}
});
//关联
tab_layout.setupWithViewPager(view_pager);