我已经看到几个应用程序在选项卡滑动(例如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
。
答案 0 :(得分:0)
请试一试。
...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
}
}