0

MainActivityの中にViewPagerfragment_main)のフラグメントがあります。 私のMainActivityに私はBottomNavigationViewを持っています。私がBottomNavigationViewの項目をクリックするとfragment_mainViewPagerのページを設定したいと思います。 どうすればいいですか?子フラグメントのViewPagerページをアクティビティから設定する

PS:私はすでにそれを働かせたが、私は私のフラグメント内の私のViewPagerにrefrenceを持って、私は項目を設定良いway.Iを使用しないと思います。

bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { 
     @Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      MainFragment mainFragment = null; 
      switch (item.getItemId()){ 
       case R.id.nav_item_feed: 
        mainFragment =(MainFragment)getSupportFragmentManager().findFragmentById(R.id.main_frame); 
        mainFragment.viewPager.setCurrentItem(0); 
        break; 
      } 
     } 

それは働きます! しかし、問題は次のとおりです。MainActivityに別の断片があるとどうなりますか? 確かに、まずfragment_mainと置き換えることができますが、時間がかかり、 mainFragment =(MainFragment)getSupportFragmentManager().findFragmentById(R.id.main_frame)がnullを返します。

フラグメントのビューページのページを設定するにはどうすればよいですか?フラグメントのための

答えて

0

使用でframeLayout代わりのViewPager bottomNavigationView内部あなたのcase文で行の下

使用リスナーをクリックします。

toFrag(ProductsFrag.newInstance(FragInstance.PRODUCTS)); 

    public void toFrag(Fragment toFrag){ 
    new Handler().postDelayed(new Runnable() { 
         @Override 
         public void run() { 
          getSupportFragmentManager().beginTransaction().replace(R.id.content, toFrag).commitAllowingStateLoss(); 
         } 
        }, 200); 
} 

はここR.id.conentは、あなたがより多くのコードを説明してもらえでframeLayout ID

+0

してくださいますか? – Apptic

関連する問題