8

Mam w sumie 12 fragmentów w nawiasie nawigacyjnym .. każdy fragment ma metodę salwy. i każdy fragment wyświetla własną odpowiedź salwy, z wyjątkiem pozycji = 1 i pozycji = 5 fragmentów.wyświetlaj poprzednią odpowiedź fragmentu w nowym fragmencie po zastąpieniu poprzedniego fragmentu nowym fragmentem za pomocą szuflady nawigacyjnej

kiedy rozpocząć mój app

Scenariusz 1: otwieram pozycji 1 i fragment i po otwarciu pozycji 5 fragment niż pozycja zarówno fragment ma 1 odpowiedź fragmentu.

Scenariusz 2: jeśli otworzę pozycję 5 fragmentu i po pozycji 1 otwartej pozycji niż oba fragmenty mają odpowiedź fragmentu 1 pozycji.

Scenariusz 1 zdjęcia

FragmentInbox FragmentLaws

Scenariusz 2 zdjęć:

FragmentLaws FragmentInbox

My fragment klasy metoda transakcji:

private void showFragment(Fragment fragment) { 
    llContainer = (LinearLayout)findViewById(R.id.container); 
    if (fragment != null) { 
     llContainer.removeAllViewsInLayout(); 
     FragmentManager fragmentManager = getSupportFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     fragmentTransaction.replace(R.id.container, fragment, fragment.getClass().getName()); 
     fragmentTransaction.commit(); 
     fragmentManager.popBackStack(); 
    } 
} 


@Override 
public void onItemSelected(int position) { 
    Fragment frag = null; 
    switch (position) { 
     case POS_HOME: 
      frag = FragmentHome.instance(screenTitles[position]); 
      break; 
     case POS_INBOX: 
      txtToolbarTitle.setVisibility(View.VISIBLE); 
      txtToolbarTitle.setText("Notifications"); 
      frag = FragmentInbox.instance(screenTitles[position]); 
      break; 
     case POS_LOG: 
      frag = FragmentLog.instance(screenTitles[position]);; 
      break; 
     case POS_BOOK: 
      frag = FragmentBook.instance(screenTitles[position]); 
      break; 
     case POS_BUILDING: 
      frag = FragmentBuilding.instance(screenTitles[position]); 
      break; 
     case POS_LAWS: 
      frag = FragmentLaws.instance(); 
      break; 
     case POS_DOCUMENT: 
      frag = FragmentDocument.instance(screenTitles[position]); 
      break; 
     case POS_EVENT: 
      frag = FragmentEvent.instance(screenTitles[position]); 
      break; 
     case POS_BOARD: 
      frag = FragmentBoard.instance(screenTitles[position]); 
      break; 
     case POS_AROUND: 
      frag = FragmentAround.instance(screenTitles[position]); 
      break; 
     case POS_PROFILE: 
      frag = FragmentProfile.instance(screenTitles[position]); 
      break; 
     case POS_CONCIERGE: 
      frag = FragmentConcierge.instance(screenTitles[position]); 
      break; 
    } 

    showFragment(frag); 
    mSlideMenu.closeMenu(); 
} 
+0

Czy możesz nam powiedzieć, który fragment odpowiada której pozycji – abhishesh

Odpowiedz

0

Problem występuje w viewPager, w obu fragmentach viewpager ma ten sam identyfikator. Zmieniam więc po prostu identyfikator viewPagera fragmentInbox, a teraz działa.

Powiązane problemy