내 조각에서 가로 모드로 툴바에 내 Menu/MenuItems 만 표시하려고합니다. 오리엔테이션을 바꿀 때 onCreateOptionsMenu
과 onPrepareOptionsMenu
이 호출되지 않는다는 것을 알았습니다. 내가 가로 모드을 시작 때 즉onCreateOptionsMenu 및 오리엔테이션 변경시 onPrepareOptionsMenu가 호출되지 않음
내 메뉴 항목 내 가로 레이아웃에서만 작동하지만, (세로에서 가로로 변경할 때 충돌) 나 가로 모드로 변화하려고하지 않을 때. 내가 onPrepareOptionsMenu()
가 호출되지 않습니다 때문에 나는 initializeLandscapeMenuViews()
에 초기화 뷰를 액세스 할 때
public class MyFragment extends Fragment
{
private int orientation;
@Override
public void onCreate(Bundle savedInstanceState)
{
orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE)
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
if (orientation == Configuration.ORIENTATION_LANDSCAPE)
inflater.inflate(R.menu.my_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public void onPrepareOptionsMenu(Menu menu)
{
initializeLandscapeMenuViews(menu);
super.onPrepareOptionsMenu(menu);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
if (orientation == Configuration.ORIENTATION_PORTRAIT)
initializePortraitMenuViews(view);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.my_layout, container, false);
}
// other code not shown
}
충돌
가 발생합니다. 나는 디버거를 사용하여 호출의 순서 확인 : 가로 모드에서 시작을
onCreate
onViewCreated
onCreateOptionsMenu
onPrepareOptionsMenu
,
onCreate
onViewCreated
다음 세로로 방향 변경, 다시 풍경
onCreate
onViewCreated
에 방향 변경
onCreateOptionsMenu
및 onPrepareOptionsMenu
은 내가 무엇을 놓치고
를 호출되지? (도움을 주시면 감사하겠습니다).
안녕하세요 @ 아이다 네츠, 실제로 시도했지만 그 콜백은 호출되지 않습니다. ( – Vinnie