derjens
Ambitioniertes Mitglied
- 5
Hallo Leute.
Ich habe ein ziemlich komisches verhalten bei Sliding Tabs Fragments mit CursorLoadern,
und bin etwas am verzweifeln da ich mir nicht erklären kann wo der Fehler liegt.
Und zwar habe ich folgende Situation.
Ich habe einen Sliding Tabs Fragment in dem ich fünf weitere Fragmente lade.
Das erste Fragment wird angezeigt und das zweite wird schon mal geladen.
Die Methode
und
werden für das zweite Fragment ausgeführt.
Swipe ich hin und her funktioniert auch alles wunder bar.
ABER nur solange ich im ersten Fragment keinen CursorLoader benutze.
Ist im ersten Fragment ein
vorhanden wird im zweiten Fragment nur die onCreateLoader(int id, Bundle args)
Methode ausgeführt aber onLoadFinished(Loader<Cursor> loader, Cursor data)
wird erst ausgeführt wenn das Fragment angezeigt wird.
Swipe ich nicht ganz zum nächsten Fragment kann ich sehen das es nicht
preloaded ist. Wird das Fragment dann ganz angezeigt wird nach einem
kurzen augenblick onLoadFinished(Loader<Cursor> loader, Cursor data) ausgeführt.
Seltsam ist auch das wenn ich auf einen Tap drücke das zu vor nicht fertig geladene
Fragment augenblicklich mit allen Daten (also alles was in onLoadFinished geschieht)
angezeigt wird als ob alles ordnungsgemäß funktioniert hätte.
Um das noch mal zusammen zu fassen.
Ist im ersten Fragment kein CursorLoader verwendet worden funktioniert alles wie gewollt.
Ist im ersten Fragment ein CursorLoader verwendet worden wird in den
folgenden Fragments die onLoadFinished(Loader<Cursor> loader, Cursor data) Methode erst ausgeführt wenn das Fragment vollständig angezeigt wird.
Als Pager Adapter benutze ich den FragmentPagerAdapter.
In der getItem(int position) Methode hole ich mir die Fragments
Wäre toll wenn vielleicht irgend jemand einen Tip hätte woran das liegen könnte.
Grüße
derjens
Ich habe ein ziemlich komisches verhalten bei Sliding Tabs Fragments mit CursorLoadern,
und bin etwas am verzweifeln da ich mir nicht erklären kann wo der Fehler liegt.
Und zwar habe ich folgende Situation.
Ich habe einen Sliding Tabs Fragment in dem ich fünf weitere Fragmente lade.
Das erste Fragment wird angezeigt und das zweite wird schon mal geladen.
Die Methode
Code:
onCreateLoader(int id, Bundle args)
Code:
onLoadFinished(Loader<Cursor> loader, Cursor data)
Swipe ich hin und her funktioniert auch alles wunder bar.
ABER nur solange ich im ersten Fragment keinen CursorLoader benutze.
Ist im ersten Fragment ein
Code:
getLoaderManager().initLoader(cursorId, null, this);
Methode ausgeführt aber onLoadFinished(Loader<Cursor> loader, Cursor data)
wird erst ausgeführt wenn das Fragment angezeigt wird.
Swipe ich nicht ganz zum nächsten Fragment kann ich sehen das es nicht
preloaded ist. Wird das Fragment dann ganz angezeigt wird nach einem
kurzen augenblick onLoadFinished(Loader<Cursor> loader, Cursor data) ausgeführt.
Seltsam ist auch das wenn ich auf einen Tap drücke das zu vor nicht fertig geladene
Fragment augenblicklich mit allen Daten (also alles was in onLoadFinished geschieht)
angezeigt wird als ob alles ordnungsgemäß funktioniert hätte.
Um das noch mal zusammen zu fassen.
Ist im ersten Fragment kein CursorLoader verwendet worden funktioniert alles wie gewollt.
Ist im ersten Fragment ein CursorLoader verwendet worden wird in den
folgenden Fragments die onLoadFinished(Loader<Cursor> loader, Cursor data) Methode erst ausgeführt wenn das Fragment vollständig angezeigt wird.
Als Pager Adapter benutze ich den FragmentPagerAdapter.
In der getItem(int position) Methode hole ich mir die Fragments
Code:
@Override
public Fragment getItem(int position) {
switch(position) {
case 0:
return MainFragment.newInstance();
case 1:
return ListFragment.newInstance();
case 2:
return DetailFragment.newInstance();
case 3:
return NochEinFragment.newInstance();
case 4:
return UndNochEinFragment.newInstance();
}
return null;
}
Wäre toll wenn vielleicht irgend jemand einen Tip hätte woran das liegen könnte.
Grüße
derjens