Я создаю приложение с ActionBar
и двумя вкладками ниже.
Все работает нормально, если устройство / эмулятор не повернуто.При повороте состояние вкладки автоматически переключается на вкладку1 (нормально, потому что вызывается onCreate
), но содержимое не изменяется. Если я выбираю вкладку в новой ориентации, вызывается метод onCreateView ()
из выбранного фрагмента
, но представление не обновляется (остается неизменным). Есть какие-нибудь советы?
Код.
Основное действие:
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);
}
Макет фрагмента, упомянутый выше, содержит только 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>