2016-07-28 37 views
0

我的ViewPager位於嵌套片段中,因爲我也有導航抽屜。我的問題是我怎麼能在MainActivity.java中調用viewpager的實例,所以我可以使用MainActivity.java中的方法setCurrentItem()在方法onBackPressed()中設置viewpager的當前項目,例如,當用戶位於viewpager的第三個片段上並且當他按下按鈕時他應該在第一個片段返回。我應該如何在活動中調用viewpager實例?

回答

0

首先,您必須將RecyclerView聲明爲公共。不知道它是否必須是靜態的,但它會告訴你是否必須。

其次,您需要調用包含RecyclerView的片段實例。 例如,Fragment recyclerFrag = new RecyclerFrag();

之後,請嘗試從該實例調用您的RecyclerView並使用setCurrentItem()。例如,recyclerFrag.recyclerView.setCurrentItem(0)

0

我找到了解決辦法。您應該首先在FragmentActivity中創建一個方法,其中初始化您的ViewPager並設置返回類型ViewPager。事情是這樣的:

public ViewPager getViewPager() { 
    return mViewPager; // instance of view pager 
} 

的片段的活動是創建對象,你在呼喚查看傳呼機的情況下這樣的後:

YourFragment fragment = new YourFragment(); 

而且在我的情況我應該在onBackPressed()調用viewpager:

HomeFragment fragment1 = new HomeFragment(); 
      if (fragment1.getViewPager().getCurrentItem() == 1 || fragment1.getViewPager().getCurrentItem() == 2) { 
       fragment1.getViewPager().setCurrentItem(0); 
      } else { 
       super.onBackPressed(); 
      } 
相關問題