Tworzę aplikację z ActionBar
i dwiema zakładkami poniżej. Wszystko działa poprawnie, jeśli urządzenie/emulator nie jest obrócone. Jeśli zostanie obrócony, stan karty przełącza się automatycznie na tab1 (normalny, ponieważ onCreate
zostanie wywołany), ale zawartość nie zostanie zmieniona. Jeśli wybiorę kartę w nowej orientacji, wywoływana jest metoda onCreateView()
z wybranego Fragment
, ale widok nie jest aktualizowany (pozostaje zawsze taki sam). Jakieś wskazówki?ActionBar Tabulatory z obróconymi fragmentami
Kod.
Główna działalność:
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);
Z identycznych kart, które wyświetlają prosty TextView. W widoku tekstowym można powiedzieć, która karta jest wybrana.
Fragmenty:
@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 układ, wspomniano powyżej, tylko zawiera TextView z zakodowanego na stałe Tekst. (Tylko w celach testowych)
Wygląd główny wygląda tak.
<?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>
Chcesz onCreate(), aby zostać wywołana, gdy urządzenie jest obrócony? – nhaarman
Tak i nie, w tym przykładzie wszystko jest w porządku. W ostatecznej aplikacji, również Ok, ale myślę, że nie jest to najlepszy sposób. Czy chcesz użyć 'android: configChanges =" keyboardHidden | orientation "'? Czytałem o tym i każdy mówił coś o wyciekach pamięci i ostateczności. Czy to prawda? Czy istnieje lepszy sposób? – Leandros