2016-07-28 7 views
0

私のViewPagerは、ネストされたフラグメントに配置されています。これはナビゲーション・ドロワーも持っているからです。私の質問はMainActivity.javaでviewpagerのインスタンスを呼び出すことができるので、メソッドonBackPressed()のMainActivity.javaからメソッドsetCurrentItem()を使ってviewpagerの現在の項目を設定することができます。例えば、ユーザーがviewpagerの3番目のフラグメントにあり、彼は最初の断片で返されるべきです。アクティビティでviewpagerインスタンスをどのように呼び出す必要がありますか?

答えて

0

まず、RecyclerViewをpublicとして宣言する必要があります。静的でなければならないかどうかはわかりませんが、それが必要かどうかを教えてくれます。

第2に、RecyclerViewを保持するフラグメントのインスタンスを呼び出す必要があります。 たとえば、Fragment recyclerFrag = new RecyclerFrag();

その後、そのインスタンスからRecyclerViewを呼び出して、setCurrentItem()を使用してみてください。たとえば、recyclerFrag.recyclerView.setCurrentItem(0)です。

0

解決策が見つかりました。最初にFragmentActivityに1つのメソッドを作成し、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(); 
      } 
関連する問題