1

我试图更改 PagerTitleStrip 中选定选项卡的颜色,我能够更改整个条带的颜色。但这不是我想要的。

如何做到这一点?任何人都可以帮忙吗?

4

3 回答 3

1

您也可以使用 PagerTitleStrip 来完成。

  1. 在您的主要活动中实现ViewPager.OnPageChangeListener
  2. 为您的 ViewPager放置setOnPageChangeListener

    MyViewPager.setOnPageChangeListener(this);

  3. 然后覆盖方法 onPageScrolled、onPageSelected、onPageScrollStateChanged

我们只需要将我们的代码放在onPageSelected(int position)方法中,就像您有 5 个页面一样,但是在此之前您需要 - 在您的主代码中声明 pagerTitleStrip。

    PagerTitleStrip pagerTitleStrip;
  • 而在 onCreateMethod

    PagerTitleStrip = (PagerTitleStrip) findViewById(R.id.title);
    
  • R.id.title 是 main_layout 中 pagerTitleStrip 的 id

    if(position==0){
        pagerTitleStrip.setBackgroundColor(0xFF3D0201);
    }
    if(position==1){
        pagerTitleStrip.setBackgroundColor(0xFF013E10);
    }
    if(position==2){
        pagerTitleStrip.setBackgroundColor(0xFF242F52);
    }
    if(position==3){
        pagerTitleStrip.setBackgroundColor(0xFF60611D);
    }
    if(position==4){
        pagerTitleStrip.setBackgroundColor(0xFF5E2E52);
    }
    
于 2015-03-04T09:25:58.137 回答
0

如果您仍然想使用PagerTitleStrip,而不是PagerTabStrip您所要做的一切如下。

tabStrip = (PagerTitleStrip) findViewById(R.id.pager_title_strip);
            tabStrip.setBackgroundColor(Color.rgb(240, 240, 240));
            tabStrip.getChildAt(1).setPadding(30, 15, 30, 15);
            tabStrip.getChildAt(1).setBackgroundResource(R.drawable.background_orange);

这将允许您设置中间选项卡的背景颜色,并且不会显示选项卡指示器,例如PagerTabStrip.

于 2015-03-15T03:29:08.697 回答
0

终于想通了!考虑 PagerTabStrip 而不是 PagerTitleStrip。

tabStrip = (MyPagerTabStrip) findViewById(R.id.pager_title_strip);
            tabStrip.setBackgroundColor(Color.rgb(240, 240, 240));
            tabStrip.getChildAt(1).setPadding(30, 15, 30, 15);
            tabStrip.getChildAt(1).setBackgroundResource(R.drawable.background_orange);
            tabStrip.setDrawFullUnderline(false);
            tabStrip.setTabIndicatorColor(Color.rgb(240,240,240));

花了一天时间研究!

于 2013-09-06T19:10:18.250 回答