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,现在就开始工作。