在TabLayout中设置不同的制表符文本颜色可以通过自定义TabLayout的TabItemView来实现。以下是一种实现方式:
public class CustomTabItemView extends TabLayout.Tab {
private int normalTextColor; // 默认文本颜色
private int selectedTextColor; // 选中文本颜色
public CustomTabItemView(TabLayout tabLayout) {
super(tabLayout);
}
public void setNormalTextColor(int color) {
normalTextColor = color;
}
public void setSelectedTextColor(int color) {
selectedTextColor = color;
}
@Override
public void select() {
super.select();
updateTabTextColor(selectedTextColor);
}
@Override
public void unselect() {
super.unselect();
updateTabTextColor(normalTextColor);
}
private void updateTabTextColor(int color) {
View customView = getCustomView();
if (customView instanceof TextView) {
((TextView) customView).setTextColor(color);
}
}
}
TabLayout tabLayout = findViewById(R.id.tab_layout);
ViewPager viewPager = findViewById(R.id.view_pager);
// 创建自定义的TabItemView
CustomTabItemView tab1 = new CustomTabItemView(tabLayout);
tab1.setCustomView(createTabView("Tab 1"));
tab1.setNormalTextColor(Color.GRAY);
tab1.setSelectedTextColor(Color.RED);
CustomTabItemView tab2 = new CustomTabItemView(tabLayout);
tab2.setCustomView(createTabView("Tab 2"));
tab2.setNormalTextColor(Color.GRAY);
tab2.setSelectedTextColor(Color.BLUE);
// 添加Tab到TabLayout
tabLayout.addTab(tab1);
tabLayout.addTab(tab2);
// 设置ViewPager与TabLayout关联
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
private View createTabView(String text) {
TextView tabView = new TextView(this);
tabView.setText(text);
tabView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
tabView.setGravity(Gravity.CENTER);
return tabView;
}
通过以上步骤,你可以在TabLayout中设置不同的制表符文本颜色。在这个例子中,我们创建了两个自定义的TabItemView,并分别设置了默认文本颜色和选中文本颜色。你可以根据需要自定义更多的TabItemView,并设置不同的文本颜色。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云