Я создаю приложение с ActionBar
и двумя вкладками ниже.
Все работает нормально, если устройство / эмулятор не вращается. При повороте состояния табуляции автоматическое переключение переключается на tab1 (нормально, потому что вызывается onCreate
), но содержимое не изменяется. Если я выбираю вкладку в новой ориентации, вызывается метод onCreateView()
из выбранного Fragment
, но представление не обновляется (всегда остается прежним). Любые советы?
Код.
Основная деятельность:
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab ATab = actionbar.newTab().setText(R.string.player);
ActionBar.Tab BTab = actionbar.newTab().setText(R.string.stations);
Fragment AFragment = new AFragment();
Fragment BFragment = new BFragment();
PlayerTab.setTabListener(new MyTabsListener(AFragment));
StationsTab.setTabListener(new MyTabsListener(BFragment));
actionbar.addTab(ATab);
actionbar.addTab(BTab);
С одинаковыми вкладками, которые отображают простое текстовое представление. Текстовое представление просто сказать, какая вкладка выбрана.
Фрагменты:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.a, container, false);
}
Макет Fragment, упомянутый выше, содержит только TextView с жестко закодированным текстом. (Только для целей тестирования)
Основной макет выглядит следующим образом.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
</LinearLayout>