android - 使用位置更改 PagerTabStrip 的背景颜色

标签 android android-viewpager

我有一个ViewPager,我使用开关和大小写在 fragment 之间移动。我可以更改每个位置的标题,但我还想更改每个位置的背景颜色。

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

在我的 onCreateView 中使用它设置永久背景颜色。我的想法是使用 titleStrip.setBackgroundColor(Color.DKGRAY);我可以在其中切换 fragment 或更改标题。但它不能正常工作。有时颜色会改变,有时不会,有时会在错误的 fragment 中改变。

这是我切换 fragment 的代码:

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

最佳答案

首先,确保您在createView时获得了titleStrip:

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) {
    }
});

关于android - 使用位置更改 PagerTabStrip 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17833455/

相关文章:

android - 无法使用 Android 库项目进行编译

android - 使用 TabsAdapter 动态替换 ViewPager 中的 fragment

Android的浏览器兼容性

android - 在android中解析本地XML文件

android - 带有数据负载的 Firebase 通知声音

c# - 当我在 Android 中通知时,如何让我的通知下拉?

Android ViewPager 上一页和下一页可见吗?

android - 从 viewpager 向后滑动会导致应用程序崩溃

android - 在 Fragment 中使用 ViewPager 时出现一个奇怪的错误

android - 道路 googleapi : Some places missing and lines passing through edifices