Android - 选项卡之间幻灯片上TabLayout指示灯颜色的平滑过渡

时间:2016-06-09 04:30:58

标签: android android-tablayout

我已经看到几个应用程序在选项卡滑动(例如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是一个正常颜色的数组,因此只有当用户完全滑动到选项卡或选择选项卡时它才会更改。我需要在这里过渡。

如何在标签滑动上实现从一种颜色到另一种颜色的平滑颜色过渡?

TabLayoutViewPager

相关联

1 个答案:

答案 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
    }
}