2017-01-11 5 views
0

여러 조각 (중첩 된 조각)이있는 ViewPager를 구현하는 조각 A가 표시되었습니다.중첩 된 조각에서 OptionsMenu를 사용하여 업데이트하지 않음

내 중첩 된 조각에서 다음과 같은 방법으로 메뉴를 부 풀립니다.

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.my_menu, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

이 질문은 이미받은 질문입니다. here. 그리고 나는 그 모든 대답을 작동시키지 않으려 고 노력했다.

내 문제는 내가 다른 조각 (그것이 어떤 옵션 메뉴를하지 않은)를 열고 메뉴 항목을 발사하지 onOptionsItemSelected 클릭하는 동안 이전보기 호출기 조각에 돌아 오면 좋아 하지마 작업 모든입니다. 뷰 페이지에서 조각을 스 와이프하여 이전 항목으로 돌아갈 때 메뉴 항목을 클릭하면 해당 항목이 실행됩니다.

답변

1

왜냐하면 viewpager가 한 번에 3 개의 조각을 유지하기 때문입니다. 다시 돌아 오면 메뉴 가시성 상태가 마지막 조각으로 바뀝니다. 그게 왜 당신의 메뉴 항목이 발포하지 않습니다. 귀하의 경우 조각 A.에 viewpager를 유지하는 곳

를 사용하여 조각에 다음

private boolean isInitial=true; 

@Override 
    public void onResume() { 
     super.onResume(); 

     if (!isInitial) { 
      int pos = viewpager.getCurrentItem(); 
      if (pageAdapter.getItem(pos).getUserVisibleHint() && pageAdapter.getItem(pos).isVisible()) { 
       pageAdapter.getItem(pos).setMenuVisibility(true); 
      } 
     } else { 
      isInitial = false; 
     } 
    }