Intereting Posts
Android BroadCastReceiver для увеличения громкости вверх и вниз Нарисовать фон треугольника в android Android: Как запросить курсор для обновления ListView после удаления строки базы данных? Изменение цвета progressbar через CODE ONLY на Android Как загрузить базу данных SQLite с устройства Android? В чем разница между windowBackground и фоном для стиля деятельности? Облачные сообщения Firebase не принимаются, когда приложение в фоновом режиме Android Samsung: приложение камеры не вернет aim.getData () Могу ли я программно определить, есть ли какие-либо устройства Chromecast в текущей сети WiFi? Управление эмулятором ddms отключено Использовать AppRTC с настраиваемым сервером Как сохранить запланированную тревогу после того, как приложение было убито Android или убийцей задачи? После изменения конфигурации фрагмент потерял переходную анимацию Не удалось подключить эмулятор Android Wear с устройством Вызов собственного выбора даты из веб-приложения на iOS / Android

Меню Упорядочение различий из-за иерархии фрагментов и активности. (onCreateOptionsMenu)

Задний план

Для Android 3.0 у меня есть HostActivity который является суперклассом NotebooksActivity и NoteActivity . NotebooksActivity включает фрагмент, NotebooksFragment .

В HostActivity я включаю меню, которое я хочу HostActivity в самом крайнем конце меню опций в ActionBar, то есть все элементы меню в подклассах HostActivity должны появиться слева от пунктов меню, добавленных в HostActivity .

Инфляция меню в HostActivity :

 @Override public boolean onCreateOptionsMenu(Menu menu) { final MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.host_menu, menu); return super.onCreateOptionsMenu(menu); } 

Проблема

Когда я добавляю пункты меню в NoteActivity , я достигаю желаемого порядка, как ожидалось:

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.notebook_menu, menu); return super.onCreateOptionsMenu(menu); } 

Тем не менее, когда я добавляю элементы меню в NotebooksFragment , из-за того, как работают фрагменты, onCreateOptionsMenu вызывается после того же метода в HostActivity , в результате чего HostActivity меню HostActivity появляются перед NotebooksFragment .

 @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.notebooks_menu, menu); SearchView sv = new SearchView(getActivity()); sv.setOnQueryTextListener(this); menu.findItem(R.id.search_notebooks).setActionView(sv); super.onCreateOptionsMenu(menu, inflater); } 

Как я могу достичь желаемого заказа меню?

Solutions Collecting From Web of "Меню Упорядочение различий из-за иерархии фрагментов и активности. (onCreateOptionsMenu)"