2013-07-24 4 views
2

인 PagerTabStrip의 배경색을 변경했습니다. ViewPager이 있고 switch and case을 사용하여 조각 사이를 이동합니다. 나는 위치 당 제목을 바꿀 수 있지만 위치마다 배경색을 변경하고 싶다.위치가

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

내 onCreateView에서 이것을 사용하면 영구적 인 배경색이 설정됩니다. 내가 가진 아이디어는 titleStrip.setBackgroundColor (Color.DKGRAY); 조각을 바꾸거나 제목을 바꿉니다. 하지만 제대로 작동하지 않습니다. 때로는 색상이 변경되고 때로는 변경되지 않는 경우가 있습니다. 당신이 할 수있는, 다음

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

, 당신은 ViewPagerOnPageChangeListener을 추가 할 수 있습니다 : 당신이 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의 색만 바꾸고 싶기 때문에. 단편의 배경은 eg이어야합니다. 흰색이지만 PagerTabStrip 배경은 예이어야합니다. 푸른 – RiThBo

답변

4

첫째, 만들 suer :

이 내가 조각을 전환하는 코드입니다 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) { 
    } 
}); 
관련 문제