ActionBar
에 일부 단편 메뉴 항목을 설정하는 데 문제가있어서 해결 방법을 찾았지만 왜 효과가 있었는지 이해할 수 없습니다. 조각의 onCreateOptionsMenu 대신 onPrepareOptionsMenu 사용
onCreateOptionsMenu
방법에서 메뉴 XML 파일에서 그것을 팽창 후 바로 메뉴 항목의 가시성을 변경을 원했습니다. 코드는 정상적으로 작동하지만 눈에 띄는 효과는 없습니다. 나는
onCreateOptionsMenu
방법에있는 메뉴를 팽창시키는 문제를 해결했다 그러나 그것의 시정을
onPrepareOptionsMenu
방법에서 바꾸기.
onCreateOptionsMenu
의 가시성이 작동하지 않습니다 변화하는 이유를 알고 싶은 무엇
이다.
내가 할 수없는 onPrepareOptionsMenu
에서 무엇을 할 수 있습니까? onCreateOptionsMenu
?
여기에 따라야 할 패턴이 있습니까?
감사합니다.
여기 단지의 경우, 관련 코드입니다 :
public class MyFragment extends Fragment {
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.my_menu, menu);
// This does not work, compiles and runs fine, but has no visible effect
MenuItem someMenuItem = menu.findItem(R.id.some_menu_item);
someMenuItem.setVisible(false);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
// This does work
MenuItem someMenuItem = menu.findItem(R.id.some_menu_item);
someMenuItem.setVisible(false);
}
}
잘 모르겠어요 시도를 위해 작동하지만 [문서] (http://developer.android.com/reference/android/app/Activity. html # onCreateOptionsMenu (android.view.Menu))는 다음과 같이 말합니다. "_ ... 메뉴가 표시 될 때마다 업데이트하려면 [onPrepareOptionsMenu (Menu)] (http://developer.android.com/reference/android/app/)를 참조하십시오. Activity.html # onPrepareOptionsMenu (android.view.Menu)) ._ " –
댓글을 주셔서 감사합니다!/팽창 만들 때 여기 것은 내가 (이 더 submenues이없는, 모든 시간이 표시되는), 난 그냥 한 번만 메뉴를 구성 할 '그것이 표시 될 때마다 업데이트'할 필요가 없습니다 것입니다, 그게 다야 . 좋아, 내 상황에서 똑같은 것처럼 보일지 모르지만 내 질문의 요점은 왜 이런 식으로 작동하는지 이해합니다. 메뉴를 만들 때 한번만 표시 할 때마다 메뉴를 '다시 구성'해야합니까? –
본인은 옵션이어야한다는 점을 이해하고 이에 동의합니다. 그러나 제 의견으로는 안드로이드가 작동하는 방식이라고 생각합니다. 경우에 따라 xml 속성을 사용하여 메뉴의 속성을 하드 코딩 할 수 있습니다. –