Hey Leute Ich arbeite an einer Android App, wo ich eine Aktivitätsgruppe für jede Registerkarte implementieren möchte. Aber da die Aktivitätsgruppe veraltet ist, muss ich Fragmente verwenden. Ich habe die letzten Tage gegoogelt und recherchiert, aber ich verstehe es immer noch nicht. Die Grafik unten beschreibt, was ich tun möchte. Ich komme auch direkt von iOS und ich brauche ein Feedback über meine Theorien.Android Fragment vs. Aktivitätsgruppe
Wie Sie jedes Fragment besteht aus einem WebView Fragmente sehen. Wenn der Benutzer auf einen Link in diesem WebView-Fragment klickt, wird die Anfrage abgefangen und ein neues Fragment wird ersetzt, das wiederum ein WebView enthält und den Link lädt, auf den im vorherigen Fragment geklickt wurde. Zu einem Zeitpunkt entscheidet der Benutzer, zu dem ersten Fragment zurückzukehren und drückt den Zurück-Knopf.
Die Fragmente sollten in umgekehrter Reihenfolge vom Stapel springen, bis er den ersten wieder sieht. Im Idealfall sollte jedes Fragment seinen Instanzstatus speichern, so dass das WebView die Site nicht erneut laden muss, wenn der Benutzer es zurückgibt.
Ich bin auf ActionBar Sherlock gestoßen, die ein Beispiel zu Fragments Tabs bietet. Es gibt auch ein Beispiel für einen Fragmentstapel. Es wäre ideal, diese beiden Beispiele zu kombinieren, so dass jeder Reiter aus einem Fragmentstapel besteht.
aussehen Mein Code structs wie folgt aus:
Mein TabHost Fragment
public class MyActivity extends SherlockFragmentActivity {
static TabHost mTabHost;
static TabManager mTabManager;
public static int THEME = R.style.Theme_Sherlock_Light;
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(THEME); //Used for theme switching in samples
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_tabs);
mTabHost = (TabHost)findViewById(android.R.id.tabhost);
mTabHost.setup();
mTabManager = new TabManager(this, mTabHost, R.id.myRealTabContent);
// adding some Fragment Tabs
mTabManager.addTab(mTabHost.newTabSpec(tabNames[i]).setIndicator(tabNames[i]),
FragmentStackSupport.CountingFragment.class, bundle);
if (savedInstanceState != null) {
mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("tab", mTabHost.getCurrentTabTag());
}
// defining the Tab Manager
Wie für jeden Tab das Fragment Stapel aussehen würde, sollten? Momentan habe ich eine Fragmentaktivität mit einem Fragment in jedem Tab. Aber ich erreiche nicht die Logik, die ich brauche.
Hier ist mein Code: (? Oder gibt es Beispiele auf dem Netz) My Fragment with WebView inside
Ich würde für ein Feedback und Hinweise freuen. Ich habe auch einige Bedenken bezüglich des Speichers - wenn der Benutzer klickt und klickt und klickt und der Speicher jedes Fragment im Stapel halten muss.
Prost.
+1 für eine gut erklärte Frage. –
Haben Sie jemals eine solide Lösung für dieses Problem gefunden? –