Я следую инструкциям на панели действий в Android Dev site
В onCreate
of ActionBarActivity.class
я добавляю такую вкладку;
Tab tab = actionBar.newTab()
.setText(R.string.artist)
.setTabListener(new TabListener<ArtistFragment>(
this, "artist", ArtistFragment.class));
actionBar.addTab(tab);
поэтому у меня будет ArtistFragment extend Fragment
но я не уверен, как добавить 2 фрагмента (ListFragment и DetailFragment) внутри ArtistFragment
Что будет внутри ArtistFragment.class
?
Android не поддерживает фрагмент фрагментов (пока). Вы должны попытаться создать макет, который поддерживает 2 фрагмента, которые взаимодействуют с вашей деятельностью вместо фрагмента OR 1, который обрабатывает работу, которую будут выполнять оба фрагмента.
Что сказал Варпзит. За Android: Можете ли вы вложить фрагменты? , Фрагменты не могут быть вложенными. Ваш фрагмент может создать экземпляр другого фрагмента вместе с ним, достигнув его родительской активности. Обычно я бы не рекомендовал это, поскольку Фрагменты должны быть единицей инкапсуляции. Но если ваши фрагменты плотно связаны (например, подробный дисплей, соответствующий элементу списка), я мог бы это сделать.
Ваш код будет выглядеть примерно так:
FragmentManager fm = getActivity().getSupportFragmentManager();
MyFragmentClass myFragment = new MyFragmentClass();
fm.beginTransaction().add(android.R.id.content, myFragment).commit();
Я нашел пример FragmentTabs из проекта API Demos очень полезным.
Просто создайте новый проект для Android от Eclipse и выберите демоверсии API (попробуйте API 13). Также для библиотеки поддержки (совместимости) есть демо-версия FragmentTabs в Support4Demos