TabLayout
TabLayout实现的是一个选项卡的效果,是安卓6.0之后出现的,在android.support.design.widget包下。
TabLayout属性
//设置字体选中颜色
app:tabSelectedTextColor
//设置字体默认颜色
app:tabTextColor
//设置指示器高度
app:tabIndicatorHeight
//设置指示器颜色
app:tabIndicatorColor
//设置指示器是否填满宽度
app:tabIndicatorFullWidth
//设置Tab滚动方式 scrollable(滚动) fixed(固定)
app:tabMode
使用
//设置选项卡文字和图标
mytab.addTab(mytab.newTab().setText("选项卡一").setIcon(R.mipmap.ic_launcher));
mytab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// 添加选中Tab的逻辑
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
// 添加未选中Tab的逻辑
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
// 再次选中tab的逻辑
}
});
自定义tab
for (int i = 0;i <tab.size(); i++){
TabLayout.Tab item = tlState.getTabAt(i);
if (item!=null){
@SuppressLint("InflateParams")
View view = LayoutInflater.from(getContext()).inflate(R.layout.item_tab, null);
((TextView) view.findViewById(R.id.tv_count)).setText(tab.get(i));
((TextView) view.findViewById(R.id.tv_title)).setText(title[i]);
//最后添加view到Tab上面
item.setCustomView(view);
}
}
mytab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// 添加选中Tab的逻辑
if (tab!=null){
View view = tab.getCustomView();
((TextView) Objects.requireNonNull(view).findViewById(R.id.tv_count)).setTextColor(getResources().getColor(R.color.green_7e));
((TextView) view.findViewById(R.id.tv_title)).setTextColor(getResources().getColor(R.color.green_7e));
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
// 添加未选中Tab的逻辑
if (tab!=null){
View view = tab.getCustomView();
((TextView) Objects.requireNonNull(view).findViewById(R.id.tv_count)).setTextColor(black_6a);
((TextView) view.findViewById(R.id.tv_title)).setTextColor(gray_80);
}
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
// 再次选中tab的逻辑
}
});