【问题标题】:PagerSlidingTabStrip Changing colour of the indicatorPagerSlidingTabStrip 改变指示器的颜色
【发布时间】:2015-04-02 05:12:59
【问题描述】:

您好,我正在使用 PagerSlidingTabStrip 在 vi​​ewpager 中显示标签。当用户从第一个片段滑到第二个片段时,我必须将指示器的颜色从红色更改为绿色。颜色的过渡必须是平滑的。但我无法决定如何做到这一点。请帮忙 !!! 提前谢谢!!!!

【问题讨论】:

    标签: android android-viewpager android-pageradapter


    【解决方案1】:

    试试这个!

    int NTABS = 2;
    int[] COLORS = { 0xFFFF0000, 0xFF00FF00 }; // COLORS.length == NTABS
    
    mPagerSlidingTabStrip.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            mPagerSlidingTabStrip.setIndicatorColor(getNewColor(position, positionOffset));
        }
    
        @Override public void onPageSelected(int position) {
    
        }
    
        @Override public void onPageScrollStateChanged(int state) {
    
        }
    });
    
    
    private int getNewColor(int position, float offset) {
        int next;
        if (offset > 0) next = (position < NTABS) ? position+1 : position;
        else next = (position > 0) ? position-1 : 0;
        return blendColors(COLORS[next], COLORS[position], offset);
    }
    
    public int blendColors(int color1, int color2, float ratio) {
        final float inverseRation = 1f - ratio;
        float a = (Color.alpha(color1) * ratio) + (Color.alpha(color2) * inverseRation);
        float r = (Color.red  (color1) * ratio) + (Color.red  (color2) * inverseRation);
        float g = (Color.green(color1) * ratio) + (Color.green(color2) * inverseRation);
        float b = (Color.blue (color1) * ratio) + (Color.blue (color2) * inverseRation);
        return Color.argb((int) a, (int) r, (int) g, (int) b);
    }
    

    【讨论】:

      【解决方案2】:

      打开你的 PagerSlidingTabStrip 库类你会得到这些代码行

      private int indicatorColor = 0xFF666666;
      private int underlineColor = 0x1A000000;
      

      否则,您可以通过编程方式执行此操作

      tabs.setIndicatorColor(indicatorColor)
      

      改变那些颜色值你会得到你想要的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-29
        • 1970-01-01
        • 2015-10-24
        • 1970-01-01
        相关资源
        最近更新 更多