我已经看到几个应用程序在标签滑动上流畅地更改了它们的指示器颜色(甚至是图标!),例如Facebook。
这是我在我的应用程序中执行此操作的方式:
tabLayout.setOnTabSelectedListener(
new TabLayout.ViewPagerOnTabSelectedListener(searchViewPager) {
@Override
public void onTabSelected(TabLayout.Tab tab) {
super.onTabSelected(tab);
tabLayout.setSelectedTabIndicatorColor(getResources().getColor(indicatorColors[tab.getPosition()]));
}
});
其中 indicatorColors 是普通颜色的数组,因此它仅在用户完全滑动到选项卡或选择选项卡时才会更改。我需要这里的过渡。
我可以做些什么才能在标签滑动上从一种颜色平滑过渡到另一种颜色?
TabLayout
与ViewPager
耦合。
请尝试这个。
...onCreate(){
...
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String arg0) {
setTabColor(tabHost);
}
});
setTabColor(tabHost);
。}
//Change The Backgournd Color of Tabs
public void setTabColor(TabHost tabhost) {
for(int i=0;i<tabhost.getTabWidget().getChildCount();i++) {
tabhost.getTabWidget().getChildAt(i).setBackgroundColor(COLOR_CYAN);
}
//unselected
if(tabhost.getCurrentTab()==0){
tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab()).setBackgroundColor(COLOR_RED); //1st tab selected
} else {
tabhost.getTabWidget().getChildAt(tabhost.getCurrentTab()).setBackgroundColor(COLOR_BLUE); //2nd tab selected
}
}