[flutter] 플러터 프로바이더를 사용하여 토글 버튼 만들기
플러터(Flutter) 앱에서 토글 버튼을 만들고 상태 관리를 위해 프로바이더(Provider)를 사용하는 방법을 알아보겠습니다.
Step 1: 프로바이더 의존성 추가하기
먼저, pubspec.yaml 파일에 provider
패키지를 추가합니다. 이를 위해 아래와 같은 코드를 pubspec.yaml 파일에 추가합니다:
dependencies:
flutter:
sdk: flutter
provider: ^5.0.0
그런 다음, 터미널에서 아래 명령어를 실행해 프로젝트에 패키지를 추가합니다:
flutter pub get
Step 2: 모델 생성하기
다음으로, 토글 버튼의 상태를 관리할 모델을 생성합니다. 모델을 생성하기 위해 아래와 같은 코드를 toggle_model.dart 파일에 추가합니다:
import 'package:flutter/foundation.dart';
class ToggleModel extends ChangeNotifier {
bool _isToggled = false;
bool get isToggled => _isToggled;
void toggle() {
_isToggled = !_isToggled;
notifyListeners();
}
}
Step 3: 프로바이더 설정하기
이제, 프로바이더를 설정하여 모델을 제공합니다. 이를 위해 main.dart 파일에 아래와 같은 코드를 추가합니다:
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'toggle_model.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => ToggleModel(),
child: MaterialApp(
home: HomeScreen(),
),
);
}
}
Step 4: 토글 버튼 추가하기
마지막으로, 홈 화면에 토글 버튼을 추가하고 이를 통해 모델의 상태를 변경합니다. 이를 위해 home_screen.dart 파일에 아래와 같은 코드를 추가합니다:
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'toggle_model.dart';
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Toggle Button Example'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
Provider.of<ToggleModel>(context, listen: false).toggle();
},
child: Consumer<ToggleModel>(
builder: (context, toggle, child) {
return Text(toggle.isToggled ? 'ON' : 'OFF');
},
),
),
),
);
}
}
이제 앱을 실행하고 토글 버튼을 눌러 상태가 변경되는지 확인할 수 있습니다. 위의 단계를 따라가면 플러터 앱에 프로바이더를 사용하여 토글 버튼을 만들 수 있습니다.
프로바이더(Provider)에 대한 자세한 내용은 공식 문서를 참고하세요.