0

我有一个带有新工具栏(替换 ActionBar)和选项卡(当前使用PagerSlidingTabStrip)的应用程序。

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

4

1 回答 1

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()返回与该片段关联的颜色的方法。

ValueAnimator并将ArgbEvaluator在两种颜色之间做动画。如果要在更多视图中使用颜色,请设置AnimationUpdateListener并设置视图的颜色。

于 2014-11-14T00:02:57.910 回答