Wie zu vermeiden onCreateView () beim Swiping in Tabs

Ich habe eine Anwendung mit einer Aktivität und 3 Swipable Tabs (Fragmente). Ich habe einige schwer erstellte UI-Elemente innerhalb von Tabs, die etwas Zeit zu schaffen und es ist ok für den ersten Lauf, aber die Ansichten sind neu erstellt jedes Mal, wenn ich sie wischen.

Wenn ich eine Registerkarte auswähle, ruft die andere Registerkarte onStop () auf und wenn ich die vorherige Registerkarte erneut auswähle, wird onCreateView () erneut aufgerufen und die Ansicht wird neu verschoben, was verlangsamt und den UI-Thread blockiert.

  • NullPointerException in HardwareRenderer
  • Injizieren Sie .java-Dateien als Java-Quelldateien in Android Studio, um den roten Kreis mit "J" auf ihnen zu entfernen
  • Android - ORMlite vs. ActiveAndroid Unterschiede?
  • Messung der Leistung mit Android Instrumentation Test
  • Benutzerdefinierte Ansicht von Limit Line in MPAndroidChart
  • In-App Emoji Tastatur
  • Was ist der richtige Weg, um Fragmente innerhalb von Tabs zu erstellen, und vermeiden Sie die Wiederherstellung ihrer Ansicht beim Swiping zwischen anderen Registerkarten?

  • Wie bekomme ich eine Sound-Benachrichtigung mit Chrome für Android mit Javascript?
  • Anwendungsname / Label über ADB Shell oder Terminal erhalten
  • TelephonyManager.getLine1Number () fehlgeschlagen?
  • Android Tastatur beim Ändern von Fragmenten ausblenden
  • Erhalten Sie Signalstärke in Android
  • Anforderung zur Erwähnung der Google Play-Service-Version im App-Manifest
  • 3 Solutions collect form web for “Wie zu vermeiden onCreateView () beim Swiping in Tabs”

    Um zu addieren, was CommnosWare angegeben hat, wenn Sie einen View-Pager verwenden, können Sie einfach mViewPager.setOffscreenPageLimit(3); aufrufen mViewPager.setOffscreenPageLimit(3); Um alle drei im Gedächtnis zu halten. Aber wenn deine Benutzeroberfläche zu schwer ist, kannst du etwas Jankos bemerken. Versuchen Sie also, Ihren UI-Setup-Code zu überarbeiten.

    Ich habe einige schwer erstellte UI-Elemente innerhalb von Tabs, die einige Zeit in Anspruch nehmen

    Wenn "etwas Zeit" mehr als ~ 5 Millisekunden ist, ist deine App defekt und muss behoben werden. Verwenden Sie Traceview, um genau zu bestimmen, wo Sie Ihre Zeit verbringen, dann reparieren Sie die Angelegenheiten, so dass es weniger Zeit auf dem Hauptanwendungs-Thread benötigt.

    Was ist der richtige Weg, um Fragmente innerhalb von Registerkarten zu erstellen, und vermeiden Sie, ihre Ansicht beim Verschieben zwischen anderen Registerkarten neu zu erstellen?

    AFAIK, FragmentPagerAdapter sollte nicht die Wirkung haben, die du beschreibst (obwohl FragmentStatePagerAdapter wird). Aber auch wenn du dein onCreateView() Performance-Problem beheben kannst, wird auch FragmentStatePagerAdapter kein Problem onCreateView() .

    Fügen Sie einfach den folgenden Code innerhalb der Hauptfragment- / Aktivitätsklasse hinzu, in der TabAdapter deklariert hat.

     viewPager.setOffscreenPageLimit(tabLayout.getTabCount()); 

    Die tabLayout und viewPager wie folgt

     TabLayout tabLayout = (TabLayout) root.findViewById(R.id.tab_layout); ViewPager viewPager = (ViewPager) root.findViewById(R.id.pager); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.