-3

ネストされたFragments[ Fragment「MainFrag」と呼ばれる 1 つのメインと多くの子Fragments] アプリは MainFrag を表示したり、他のフラグメントを表示したりできます。

私がやりたいのは、ユーザーがその MainFrag を表示することを選択するたびsetCurrentItemに MainFrag のことです。そのため、それを配置しようとしましたが、これは、ユーザーが別のフラグメントを選択してから MainFrag を再選択したかのように、ユーザーが MainFrag を表示するのは初めてですは機能していませんViewPageronCreateViewseCurrentItem

また、MainFrag の中に入れようとしましたonResumeが、必要に応じて機能しましたが、ユーザーがアプリをバックグラウンドに移動してから再度開くと、viewPager がスクロールし、これが必要ないという問題も発生します

では、正確にどこに置くことができますsetCurrentItemか?

mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);

編集: MainFrag がそのうちの 1 つである 3 つのメイン フラグメント間を移動するためにナビゲーション メニューを使用しています。

4

3 に答える 3

1

アダプターをviewpagerに設定した後、setCurrentItemメソッドを追加します

mViewPager.setAdapter(adapter);
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber);
于 2016-04-25T09:49:05.857 に答える
0

これを試して:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                viewPager.setCurrentItem(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

    }
于 2016-04-25T11:35:00.280 に答える