8

我在導航drawar中有總共12個片段..每個片段都有排球方法。 ,除了位置= 1和位置= 5片段之外,每個片段都顯示自己的齊射響應。通過導航抽屜替換之前的片段到新的片段,排除新片段中的前一個片段響應

當我的應用程序啓動

方案1:我打開位置1個片段和後我打開位置5片段比兩個片段具有位置1片段的響應。

情景2:如果我打開位置5的片段,並且在打開位置1的片段之後,比這兩個片段都具有位置1的片段響應。

方案1的圖像:

FragmentInbox FragmentLaws

方案2倍的圖像:

FragmentLaws FragmentInbox

我的片段交易方法類:

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

您能否告訴我們哪個片段對應哪個位置 – abhishesh

回答

0

問題出在viewPagers中,在這兩個片段中viewpager都有相同的id。所以我只是改變了fragmentInbox的viewpager id,現在就開始工作。