更改选项卡更改工具栏和选项卡背景

时间:2014-11-10 08:47:09

标签: android tabs android-toolbar pagerslidingtabstrip

我有一个带有新工具栏(取代ActionBar)和标签(当前使用PagerSlidingTabStrip)的应用。

我有3个标签,我想在更改标签时翻译颜色。 例如,对于tab1,工具栏和选项卡显示#ff0000,对于tab2#00ff00和tab3#0000ff。

1 个答案:

答案 0 :(得分:0)

@Override
        public void onPageSelected(int position) {
            if (mPreviousSelectedPage != position) {
                int currentColor =((MyFragment) mAdapter.getItemAt(position)).getColor();
                position = mPreviousSelectedPage > position? position - 1; position + 1;
                if(position < mViewPage.getCount()-1 && position >=0){
                    ValueAnimator colorAnim = ObjectAnimator.ofInt(mToolbar, "backgroundColor", mPreviousColor, currentColor);
                    colorAnim.setDuration(100);
                    colorAnim.setEvaluator(new ArgbEvaluator());
                    colorAnim.start();
                    mPreviousSelectedPage = position;
                    mPreviousColor = currentColor;
              }
            }
        }

ViewPagerAdapter中的片段应该包含方法getColor(),该方法将返回与该片段相关联的颜色。

ValueAnimatorArgbEvaluator将在两种颜色之间进行动画制作。如果要在更多视图中使用该颜色,请设置AnimationUpdateListener并将颜色设置为视图。