-3

我有嵌套Fragments [1主Fragment稱爲「MainFrag」和許多孩子Fragments] 該軟件可以顯示MainFrag或可以向其他片段。放在哪裏「ViewPager.setCurrentItem()」方法

我想要做的就是給每一個用戶選擇顯示MainFrag所以我試圖把它在它的onCreateView但這只是在第一次工作時用戶顯示MainFrag如果用戶選擇其他的時間MainFrag的ViewPagersetCurrentItem片段,然後重新選擇MainFrag的seCurrentItem不工作

我也試圖把它MainFrag的onResume裏面,它的工作是必需的,但它也造成一個問題,即如果用戶移動應用背景,然後重新打開它viewPager將滾動,我不想要這

所以我可以把setCurrentItem

mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber); 

編輯:我正在使用導航菜單在MainFrag是其中之一的3個主要片段之間移動。

回答

1

mViewPager.setAdapter(adapter);方法後,你可以把

mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber); 
+0

我對他們有3個主要碎片是包含一些孩子的MainFrag。你說什麼只是第一次顯示'MainFrag',但如果滾動到某個孩子,然後從3顯示另一個主片段,然後reShow我的'MainFrag'' currentViewPager'項目仍然是從上次相同。 'setCurrentItem'不再工作。 –

1

設置適配器後viewpager添加setCurrentItem方法

mViewPager.setAdapter(adapter); 
mViewPager.setCurrentItem(mCurrentWeekFragmentItemNumber); 
+0

我做到了,只有一次,爵士 –

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

      } 
     }); 

    }