Warum flattern meine app die listview scrollen nicht so flüssig wie das flattern Galerie-app?
Erstellte ich ein release-build von meiner scroll demo-app mit Flattern. Ich Frage mich, warum das listview-scrolling meiner app ist NICHT so glatt wie das flattern Galerie-app. Ich benutzte LG G5 für diesen test.
Hier einen link zu meiner app demo
Edit:
hier ist der code.
class ListViewSample extends StatelessWidget {
@override
Widget build(BuildContext buidContext) {
return new Container(
child: new Center(
child: new ListView(
children: createListTiles(),
),
)
);
}
List<Widget> createListTiles() {
List<Widget> tiles = <Widget>[];
for(int i = 0; i < 40; i++) {
int count = i + 1;
tiles.add(
new ListTile(
leading: new CircleAvatar(
child: new Text("$count"),
backgroundColor: Colors.lightGreen[700],
),
title: new Text("Title number $count"),
subtitle: new Text("This is the subtitle number $count"),
)
);
}
return tiles;
}
Macht jemand die gleiche Erfahrung auch?
Dank!
- Wie haben Sie bei der Umsetzung Ihrer ListView? Können Sie bitte teilen Sie einige code?
- Haben Sie versucht, den release-Modus?
InformationsquelleAutor kurt capatan | 2017-10-15
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem mit deinem code ist, dass Sie über die regelmäßige
ListView
, die nicht geeignet für Listen mit vielen Elementen. Alle diese 40 widgets werden im Speicher gehalten, wodurch die kitschige scrolling Erfahrung, die Sie leiden.Wenn Sie eine große Anzahl oder unbestimmte Menge von Elementen, die Sie verwenden sollten, ListView.generator statt. Es baut nur die sichtbaren Elemente der Liste auf-Nachfrage, die es möglich macht, auch größere Listen scrollen reibungslos.
Hier ist ein vollständiges Beispiel, wie würden Sie bei der Migration Ihrer Liste der builder-Ansatz:
Beachten Sie, dass es gibt eine Menge von Elementen, in diesem Fall 200, aber das scrollen ist immer noch butterweicher.
Flattern ist nicht glatt mit "Debug" - build, läuft es viel glatter mit "Release" - build ( von der Befehl Linie laufen "flattern laufen --Version"). Natürlich Iiro Krankka Antwort erhöhen sich auch die Liste der performance.
Flattern Profil-Modus kompiliert und startet Ihre Anwendung fast identisch zu den release-Modus, aber mit gerade genug zusätzliche Funktionalität zu ermöglichen debugging, performance-Probleme. Zum Beispiel, Profil-Modus bietet die tracing-Informationen in die profiling-tools.
In Android Studio und IntelliJ, verwenden Sie die Ausführen - > Flattern Laufen main.dart im Profil-Modus Menüpunkt.