Meine Aktivität enthält einige Fragmente in einem LinearLayout (R.id.liste, innerhalb eines ScrollView) und es dauert einige Zeit, bis sie angezeigt werden. Ich habe die Größe des Arrays auf 50 reduziert, zuvor waren es 350. Jedes Fragment ist unabhängig, da ich möchte, dass sie auf Klick reagieren und einen Dialog öffnen.
Hier ist der Code:
long start= System.currentTimeMillis();
for (Item item : dao.getList(triKey, start, end)) {
ItemFragment fragment = ItemFragment.newInstance(item);
FragmentTransaction fragTransaction = fragMan.beginTransaction();
fragTransaction.add(R.id.liste, fragment);
fragTransaction.commit();
}
long time = System.currentTimeMillis()-start;
Echte Frage:
Ich möchte einen kreisförmigen Fortschrittsbalken anzeigen und ihn ausblenden, wenn alle Fragmente angezeigt sind, aber die Aktivität hat keine onViewCreated() Methode, gibt es einen Workaround?
Tiefgreifende, theoretische Frage:
Wenn ich Activity.onCreateView() überschreibe und System.currentTimeMillis() verwende, sehe ich, dass es 7,5 Sekunden dauert, um 50 Fragmente auf meinem Nexus 4 anzuzeigen (und 20s für 350 Fragmente). Da jedes Fragment nur 5 TextViews und 1 ProgressBar enthält und etwa 10-15 ms benötigt, um seine Ansicht zu erstellen, bin ich überrascht, dass es so lange dauert. Warum dauert es fast 6-mal länger, das Fragment hinzuzufügen, als es zu zeichnen?
Ich weiß nicht, welchen Code Sie brauchen, um zu antworten, fragen Sie gerne nach!
Vielen Dank für jede Hilfe!