اقوم بتعلم تطوير التطبيقات بواسطة flutter منذ شهر، حيث أقوم بتنفيذ تطبيقات تدريبية لممارسة ما أتعلمه.
أحاول جلب 500 تعليق كـJSON من الرابط التالي: https://jsonplaceholder.typicode.com/comments ومن ثم عرضها في ListView.
لاحظت بطئ وعدم إستجابة مؤقتة في عناصر واجهة المستخدم للتطبيق عند جلب عدد كبير من البيانات من الانترنت بواسطة الاضافة http حيث أن ProgressIndicator تتوقف عن الدوران وتصبح بطيئة.
هذا هو الكود :
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Hello'),
),
body:FutureBuilder(
future: getData(),
builder: (context,AsyncSnapshot<List> snapshot){
if(snapshot.hasData){
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context,i){
return ListTile(title: Text('comment:${snapshot.data[i]['email']}'));
});
}
else{
return Center(child: CircularProgressIndicator());
}
}
),
);
}
Future<List> getData() async{
var response = await http.get('https://jsonplaceholder.typicode.com/comments');
return jsonDecode(response.body);
}
}
شكرا لكم.