0

Я пытаюсь приспособить Google's sample app code for a Navigation Drawer activity к моему собственному приложению, но деятельность, которую я хочу заменить фрагмент, - это ActionBarActivity. Мне нужно иметь возможность работать с уникальной панелью действий в каждом (фрагменте), перемещаясь с ящиком в целом. Я исследовал и обнаружил, что хотя ActionBarActivity расширяет FragmentActivity, попытка кода Fragment fragment = new PlanetFragment(); - это большой номер-нет. Пожалуйста, извините мою наивность, если этот код кажется смешным, о чем я знаю.Как использовать ActionBarActivity в контексте NavigatorActivity?

EDIT: Теперь я понимаю, что FragmentActivity - это не то, что я ищу, а скорее фрагмент.

В принципе я не понимаю, как адаптировать:

Fragment fragment = new PlanetFragment(); 
    Bundle args = new Bundle(); 
    args.putInt(PlanetFragment.ARG_PLANET_NUMBER, position); 
    fragment.setArguments(args); 

    FragmentManager fragmentManager = getFragmentManager(); 
    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); 

, чтобы позволить мне использовать мой предварительно кодированный ActionBarActivity как фрагмент. Благодаря!

EDIT: Я начинаю видеть, что само по себе NavigatorActivity расширяет ActionBarActivity и один, вероятно, может изменить панель действий в соответствии с какой фрагмент показано на рисунке. Однако я до сих пор не совсем понимаю, как панель действий может иметь одинаковые/разные кнопки и работать по-разному с каждым соответствующим фрагментом.

+1

«FragmentActivity» не является «фрагментом», вы не можете использовать активность вместо фрагмента. Что именно вам нужно, чтобы быть уникальным в панели действий для каждого фрагмента? Вероятно, это может быть реализовано путем переопределения различных методов 'OptionsMenu'. – tachyonflux

+0

Возможно, вы ищете [Панель инструментов] (http://developer.android.com/reference/android/support/v7/widget/Toolbar.html). – tachyonflux

ответ

0

Настройте навигационный ящик normaly. если вы хотите, чтобы новая панель действий в каждом фрагменте вызывала только

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

Выполнение этого во всех фрагментах даст вам новые возможности. Если вы хотите персолитировать его, сделайте это onCreate();

Пс: Я вижу, что вы немного запутываете работу NavigationDrawer. Просто создайте ActionBarActivity, который расширяет NavigationDrawer, и при каждом нажатии на NavigationDrawer он извлекает фрагмент. Это очень просто использовать.

Если вы используете Android Studio, перейдите в Пример файла/импорта и выберите образец NavigationDrawer, который поможет вам это понять.

 Смежные вопросы

  • Нет связанных вопросов^_^