[flutter] RefreshIndicator를 사용하여 네트워크 요청 후 데이터 새로 고침하기
안녕하세요! 이번 포스트에서는 Flutter 앱에서 네트워크 요청을 하고 데이터를 새로고침하는 방법에 대해 알아보겠습니다.
1. RefreshIndicator란?
RefreshIndicator
는 사용자가 스크롤하여 새로 고침할 수 있는 기능을 제공하는 Flutter 위젯입니다. 이를 사용하여 네트워크 요청을 하고 데이터를 새로고침할 수 있습니다.
2. 네트워크 요청 및 데이터 새로 고침
우선, http
패키지를 사용하여 네트워크 요청을 보내고 데이터를 가져오겠습니다.
import 'package:http/http.dart' as http;
Future<String> fetchData() async {
final response = await http.get(Uri.parse('https://api.example.com/data'));
if (response.statusCode == 200) {
return response.body;
} else {
throw Exception('Failed to load data');
}
}
위 코드는 fetchData
함수를 사용하여 네트워크 요청을 보내고, 성공적으로 데이터를 가져오면 해당 데이터를 반환합니다.
이제 RefreshIndicator
를 사용하여 데이터를 새로고침하는 방법을 알아보겠습니다.
RefreshIndicator(
onRefresh: () {
return fetchData();
},
child: ListView(
children: <Widget>[
// 데이터 표시
],
),
)
위 코드에서 onRefresh
콜백 함수에서는 fetchData()
함수를 호출하여 데이터를 새로고침합니다.
3. 완성된 예제
아래는 전체적인 예제 코드입니다. 이 코드를 참고하여 원하는 대로 데이터를 새로고침하는 기능을 구현해 보세요.
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(
home: Scaffold(
appBar: AppBar(title: Text('데이터 새로고침 예제')),
body: MyWidget(),
),
);
}
}
class MyWidget extends StatelessWidget {
Future<String> fetchData() async {
final response = await http.get(Uri.parse('https://api.example.com/data'));
if (response.statusCode == 200) {
return response.body;
} else {
throw Exception('Failed to load data');
}
}
@override
Widget build(BuildContext context) {
return RefreshIndicator(
onRefresh: () {
return fetchData();
},
child: ListView(
children: <Widget>[
// 데이터 표시
],
),
);
}
}
이제 여러분은 Flutter에서 RefreshIndicator
를 사용하여 네트워크 요청 후 데이터를 새로고침하는 방법을 알게 되었습니다. 원하는 페이지에서 해당 기능을 구현하여 사용자 경험을 향상시킬 수 있을 것입니다.
다음 포스트에서 더 다양한 Flutter 개발 팁과 기술을 소개하겠습니다. 감사합니다!
참고 자료: Flutter 공식 문서 - RefreshIndicator