8

내비게이션 창에 총 12 조각이 있습니다. 각 조각에는 발리 법이 있습니다. 및 각 단편은 position = 1 및 position = 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

문제는 viewPages에서 발생하며, 두 viewpager가 동일한 ID를가집니다. 그래서 나는 fragmentInbox의 viewpager id와 그 작업을 변경합니다.