ViewPager
이 포함 된 Activity
의 간단한 코드가 있습니다. 내 Fragment
중 하나에서 메뉴에 몇 가지 메뉴 항목을 추가하려고하지만, 나는 이상한 행동을하고 있습니다. 내 조각에서 setHasOptionsMenu(true);
을 호출하면 ViewPager
의 조각을 변경할 때마다 액티비티의 onCreateOptionsMenu()
메서드가 호출됩니다. 이게 정상인가?프래그먼트에서 setHasOptionsMenu (true)를 호출하면 액티비티의 onCreateOptionsMenu에 대한 호출이 여러 번 발생합니다.
9
A
답변
16
절대적으로 "정상"입니다. 특정 유즈 케이스에 맞지 않을 수도 있지만 분명히 의도 된 동작입니다.
것은 android.support.v4.app.Fragment.setHasOptionsMenu()에 대한 소스를 살펴 보자 :
궁극적에 호출되는onCreateOptionsMenu()
에 이르게 활동의에 당신은
supportInvalidateOptionsMenu()
를 호출 볼 수 있습니다
public void setHasOptionsMenu(boolean hasMenu) {
if (mHasMenu != hasMenu) {
mHasMenu = hasMenu;
if (isAdded() && !isHidden()) {
mActivity.supportInvalidateOptionsMenu();
}
}
}
활동과 그것의 모든 파편입니다. 프레임 워크가 프래그먼트가 액티비티의 프래그먼트 매니저에 추가/제거 될 때 옵션 메뉴 업데이트를 관리하는 방법입니다.
관련 문제
- 1. 여러 번 호출하면/urllib3에서 'httplib.BadStatusLine'오류가 발생합니다.
- 2. 메인 액티비티의 프래그먼트에서 버튼을 비활성화하십시오.
- 3. AMFPHP gateway.php를 동시에 여러 번 호출하면 버전 오류가 발생합니다.
- 4. WebGL drawElements를 여러 번 호출하면 잘못된 렌더링이 발생합니다.
- 5. DllImport를 여러 번 호출하면 어떻게됩니까?
- 6. emit을 한 번만 호출하면 사용자 정의 이벤트가 여러 번 발생합니다.
- 7. PHP 함수를 여러 번 호출하면 MySQL 오류가 발생합니다.
- 8. FindFirstChangeNotification 여러 번 발생합니다.
- 9. modalViewController를 호출하면 호출이 취소됩니다.
- 10. PostAuthenticateRequest 여러 번 발생합니다.
- 11. Pageinit가 여러 번 발생합니다.
- 12. 이벤트가 여러 번 발생합니다.
- 13. fgets()를 두 번 호출하면 두 번째 호출이 완료되지 않습니다.
- 14. Owin 시작이 여러 번 발생합니다.
- 15. 파이썬에서 sar를 호출하면 이상한 결과가 발생합니다.
- 16. UIImagePickerController를 여러 번 호출하면 장치가 다시 시작됩니다.
- 17. session_start를 여러 번 호출하면 중복 쿠키가 생성됩니까?
- 18. preg_replace를 여러 번 호출하면 결과가 변경됩니다.
- 19. jQuery - 이벤트가 여러 번 발생합니다.
- 20. 안드로이드 액티비티의 onCreate가 두 번 호출되었습니다.
- 21. 포스트 백이 여러 번 발생합니다
- 22. 석영 작업이 여러 번 발생합니다.
- 23. jQuery - Ajax 호출이 여러 번 간다
- 24. 하나의 Linq2Sql submitchanges() 호출이 여러 번 실행됩니다.
- 25. 메서드를 호출하면 오류가 발생합니다.
- 26. 액티비티의 여러 조각
- 27. 여러 액티비티의 반환 값
- 28. 메서드를 여러 번 호출하면 더 생산적인 방법이 있습니까?
- 29. Redis에 대한 여러 번 요청
- 30. 자바 스크립트 : 함수를 두 번 호출하면 원하지 않는 동작이 발생합니다.
고마워, 지금은 나를 위해 인생을 어렵게 만들지 만 적어도 의도 된 행동이라는 것을 알고 있습니다. – facetoe