VerticalTabLayout选中改变颜色
时间: 2024-01-16 18:01:45 浏览: 122
改变选择table行的背景色
5星 · 资源好评率100%
要实现VerticalTabLayout选中项的颜色变化,可以通过设置TabLayout.OnTabSelectedListener来监听Tab的选中状态。在onTabSelected回调中,可以通过设置对应Tab的CustomView来改变选中项的颜色。
以下是一个简单的示例代码:
```java
// 获取VerticalTabLayout对象
VerticalTabLayout tabLayout = findViewById(R.id.vertical_tab_layout);
// 设置Tab的CustomView
for (int i = 0; i < tabLayout.getTabCount(); i++) {
View tab = LayoutInflater.from(this).inflate(R.layout.tab_item, null);
TextView tabTitle = tab.findViewById(R.id.tab_title);
tabTitle.setText("Tab " + i);
tabLayout.getTabAt(i).setCustomView(tab);
}
// 设置选中项的颜色
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
View customView = tab.getCustomView();
if (customView != null) {
TextView tabTitle = customView.findViewById(R.id.tab_title);
tabTitle.setTextColor(ContextCompat.getColor(MainActivity.this, R.color.selected_tab_color));
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
View customView = tab.getCustomView();
if (customView != null) {
TextView tabTitle = customView.findViewById(R.id.tab_title);
tabTitle.setTextColor(ContextCompat.getColor(MainActivity.this, R.color.unselected_tab_color));
}
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
// do nothing
}
});
```
需要注意的是,上述示例代码中的R.layout.tab_item是自定义的布局文件,用于设置每个Tab的样式。在该布局文件中,可以自定义选中和未选中状态下的Tab样式。同时,也需要在colors.xml文件中定义选中和未选中状态下的颜色值。
阅读全文