0

MainActivity 안에 ViewPager (fragment_main)의 조각이 있습니다. 내 MainActivityBottomNavigationView이 있습니다. BottomNavigationView 항목을 클릭하면 fragment_mainViewPager 페이지로 설정하고 싶습니다. 어떻게 할 수 있습니까?하위 조각의 ViewPager 페이지 설정하기

PS : 이미 작동하지만 난 좋은 길이야 내 조각 안에 내 ViewPager에에 refrence있어 사용 생각하지 않는다 만든 내가 항목 설정 : 그것은 작동

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)을 반환합니다.

그렇다면 조각의 뷰 페이지 페이지를 설정하는 가장 좋은 방법은 무엇입니까? 조각에 대한

답변

0

사용 FrameLayout이 대신 ViewPager bottomNavigationView 내부 귀하의 경우 문에서 행 아래

를 사용하여 수신기를 클릭합니다.

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