用位置更改PagerTabStrip的背景颜色

时间:2013-07-24 12:01:59

标签: android android-viewpager

我有ViewPager,我使用switch and case在片段之间移动。我可以更改每个位置的标题,但我还想更改每个位置的背景颜色。

public PagerTabStrip titleStrip;
    titleStrip.setBackgroundColor(Color.DKGRAY);

在我的onCreateView中使用它设置永久背景颜色。我的想法是使用titleStrip.setBackgroundColor(Color.DKGRAY);我切换片段或更改标题的地方。但它不能正常工作。有时候颜色会发生变化,有时却没有变化,有时它会改变错误的碎片。

这是我切换片段的代码:

@Override
    public Fragment getItem(int position) { 

        switch (position) {

        case 0:  titleStrip.setBackgroundColor(Color.DKGRAY); // These
                 titleStrip.setTextColor(Color.WHITE); // This doesn't work either

            return new Fragment0();

        case 1:
            return new Fragment1();
        case 2:
            return new Fragment3();
        }
        return null;
    }

1 个答案:

答案 0 :(得分:4)

首先,确保在titleStrip

时获得createView
titleStrip = (PagerTabStrip) pagerView.findViewById(R.id.pager_title_strip);

然后,您可以将OnPageChangeListener添加到ViewPager,您可以在onPageSelected方法中执行任何操作:

mPager.setOnPageChangeListener(new OnPageChangeListener() {

    @Override
    public void onPageSelected(int position) {
        switch (position) {
        case 0:
            titleStrip.setBackgroundColor(Color.BLUE);
            break;

        case 1:
            titleStrip.setBackgroundColor(Color.GRAY);
            break;
        }
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }
});