[flutter] 플러터 ProgressIndicator를 사용하여 네트워크 요청 상태를 표시하는 방법은?
네트워크 요청을 처리할 때 사용자에게 진행 상황을 시각적으로 표시하는 것은 중요합니다. 플러터에서는 ProgressIndicator
위젯을 사용하여 이를 간단하게 구현할 수 있습니다.
1. ProgressIndicator 추가
먼저, 네트워크 요청이 시작될 때에 ProgressIndicator
를 표시하기 위해 해당 위젯을 화면에 추가합니다.
import 'package:flutter/material.dart';
class YourScreen extends StatefulWidget {
@override
_YourScreenState createState() => _YourScreenState();
}
class _YourScreenState extends State<YourScreen> {
bool _isLoading = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Your Screen'),
),
body: Center(
child: _isLoading ? CircularProgressIndicator() : YourContentWidget(),
),
);
}
}
2. 네트워크 요청 처리
네트워크 요청을 시작하고 완료했을 때 _isLoading
상태를 바꾸어 ProgressIndicator
의 표시 여부를 제어합니다.
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
class YourScreen extends StatefulWidget {
@override
_YourScreenState createState() => _YourScreenState();
}
class _YourScreenState extends State<YourScreen> {
bool _isLoading = false;
void _fetchData() async {
setState(() {
_isLoading = true;
});
try {
final response = await http.get('https://api.example.com/data');
// 네트워크 요청 완료 후 작업
} catch (e) {
// 에러 처리
} finally {
setState(() {
_isLoading = false;
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Your Screen'),
),
body: Center(
child: _isLoading ? CircularProgressIndicator() : YourContentWidget(),
),
);
}
}
결론
ProgressIndicator
를 사용하여 네트워크 요청 상태를 표시하는 것은 플러터 앱의 사용자 경험을 향상시키는 데 도움이 됩니다. 네트워크 요청이 시작되었음을 사용자에게 시각적으로 알리고, 요청이 완료되면 제거하여 사용자에게 진행 상황을 분명하게 전달할 수 있습니다.
참고: 플러터 공식 문서 - ProgressIndicator