Viewpager+FragmentpagerAdapet+Fragmente+Listview = app wahnsinnig langsam
Ich habe einen viewpager in meinem layout , dass viewpager enthält eine Reihe von 10 Fragmente . Jedes fragment hat eine Liste Ansicht , die asynchron aufgefüllt . Ich m derzeit mit FragmentPagerAdapter als adapter für den viewpager und die API-Aufrufe zum füllen der Listenansicht erfolgt in onCreateView jedes fragments . Das streichen ist wahnsinnig langsam und die app schließt sich, weil der Speicher Probleme .
Wie das zu erreichen ist glatt und reaktionsschnell Weg (viewpager+listview) wie Google Play nicht ?
Glatt streichen + gute cache-Liste posten ?
- Eine weitere Sache, die ich hinzufügen möchte, in dieser Frage kann ich erreichen viewpager fragment in wenn ja dann wie??
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es viele Möglichkeiten zur Verbesserung die Leistung einer
ViewPager
mit einer integriertenListView
.Ändern Sie zunächst den
PagerAdapter
ausFragmentPagerAdapter
zuFragmentStatePagerAdapter
. Der Unterschied ist, dass Sie Last 10 Seiten innerhalb der pager. Und wenn Sie gingen durch die manager setzen nur die Seiten inonStop()
daher wird es Platz reservieren. Allerdings mitFragmentStatePagerAdapter
zerstören diese Seiten aber wird speichern Sie Ihre Instanz mit Hilfe deronSaveInstanceState
Methode. Also, wenn du zurückkommst, wird es nicht nehmen Sie viel Zeit zum laden und Sie spart Speicher.In der Regel
FragmentPagerAdapter
mit 3 Seiten oder weniger.Der zweite Weg, um die Leistung zu verbessern (aber es entleert den Akku schneller) ist das hinzufügen dieser Zeile in deine
AndroidManifest.xml
unter Ihrem application-tag:Die Dritte Möglichkeit ist die Erkennung der swipe-Geste. Sie können dies tun, durch die Implementierung
onPageChangeListener
dann in der implementierten MethodeonPageScrollStateChanged
Sie überprüfen, ob die SeiteIdle
dann fügen Sie dieListView
. Ansonsten halt die Verwendung vonListView
und Blättern Sie zur nächsten Seite. Hier ist eine bessere Erklärung von diesem Punkt.Hoffen, einige dieser Punkte kann Ihnen helfen, zu erreichen eine bessere Leistung.