2

があり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;
    }
4

1 に答える 1

4

まず、titleStripwhenがあることを確認してください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) {
    }
});
于 2013-07-29T02:56:50.877 に答える