2013-07-24 47 views
2
位置

我有ViewPager,我使用switch and case片段之間移動。我可以改變每個位置的標題,但我也想改變每個位置的背景顏色。更改PagerTabStrip的背景色與

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

在我的onCreateView中使用此設置永久背景顏色。我的想法是使用titleStrip.setBackgroundColor(Color.DKGRAY);我在哪裏切換片段或更改標題。但它不能正常工作。有時候顏色會改變,有時候不會,有時它會改變錯誤的片段。

這是我切換片段代碼:你已經拿到了titleStripcreateView

@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; 
    } 
+0

爲什麼不直接更改碎片的背景? –

+0

@ Yume117因爲我只想改變PagerTabStrip的顏色。片段的背景應該是例如。白色,但是PagerTabStrip背景應該是例如。藍色 – RiThBo

回答

4

首先,發售者:

titleStrip = (PagerTabStrip) pagerView.findViewById(R.id.pager_title_strip); 

然後,您可以添加OnPageChangeListenerViewPager,你可以做任何你想要在使用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) { 
    } 
});