Ich habe bemerkt, dass, wennAndroid ActionBar Registerkarten eingestellt zunächst Tab ausgewählt
mitactionBar.setSelectedNavigationItem(x)
im onCreate() -Methode meiner Aktivität, die Registerkarte Element an der Position 0 wird immer zuerst ausgewählt und dann auf die Registerkarte Element an der Position x ist geladen. Das bedeutet, dass (seit ich Fragmente benutze) 2 Fragmente geladen sind. Einer von ihnen nicht notwendig zu sein ...
Hier ist mein Code:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Determine which bundle to use; either the saved instance or a bundle
// that has been passed in through an intent.
Bundle bundle = getIntent().getExtras();
if (bundle == null) {
bundle = savedInstanceState;
}
// Initialize members with bundle or default values.
int position;
if (bundle != null) {
position = bundle.getInt("selected_tab");
} else {
position = 0;
}
// Set the tabs.
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab = actionBar
.newTab()
.setText("Tab 1")
.setTabListener(
new TabListener<RendersGridFragment>(this, "1",
RendersGridFragment.class));
actionBar.addTab(tab);
tab = actionBar
.newTab()
.setText("Tab 2")
.setTabListener(
new TabListener<RendersGridFragment>(this, "2",
RendersGridFragment.class));
actionBar.addTab(tab);
tab = actionBar
.newTab()
.setText("Tab 3")
.setTabListener(
new TabListener<RendersGridFragment>(this, "3",
RendersGridFragment.class));
actionBar.addTab(tab);
actionBar.setSelectedNavigationItem(position);
}
Es scheint, dass die Lasche an Position 0 zunächst standardmäßig ausgewählt. Aber wie Sie sehen, übergebe ich Bündel, um sicherzustellen, dass der zuletzt ausgewählte Tab immer noch ausgewählt ist, wenn die Aktivität onCreate() erneut ausgeführt wird. Beispiel: Wenn sich die zuletzt ausgewählte Registerkarte an Position 2 befindet, die onCreate() ausgeführt wird und die Registerkarte an Position 0 geladen ist, wird die Registerkarte an Position 2 geladen.
Wie kann ich sicherstellen, dass die ActionBar bei Verwendung von actionBar.setSelectedNavigationItem (position) nicht zuerst die Registerkarte an Position 0 auswählt.
Das ist perfekt. Ich dachte mir, dass es eine einfache Lösung gibt. Vielen Dank. – mdupls
Es funktioniert, aber ich kann den Übergang von ViewPager sehen, wenn Aktivität erstellt wird. Gibt es einen Weg, wie man es deaktiviert? – sealskej
Ich bin mir nicht sicher, ob ich das gleiche Problem des Fragestellers hatte. In meinem Fall wurde die Funktion setSelectedNavigationItem (...) beim Aufruf onCreate meiner Aktivität das Fragment zweimal oder öfter instanziiert. Ändern für dieses Problem zu lösen. Vielen Dank. –