Nothing Special   »   [go: up one dir, main page]

Lab+State+Management Provider

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Lab State Management

1. Provider state management


Main.dart
Main.dart
import'package:application_providerstatemanagement/application_color.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

void main() {
runApp(MyApp());
}

class MyApp extends StatelessWidget {


const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
home: ChangeNotifierProvider<ApplicationColor>(
create: (context) => ApplicationColor(),
child: Scaffold(
appBar: AppBar(
backgroundColor: Colors.black,
title: Consumer<ApplicationColor>(
builder: (context, applicationcolor, _) => Text(
"Provider State Manageement",
style: TextStyle(color: applicationcolor.color),
),
),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Consumer<ApplicationColor>(
builder: (context, applicationcolor, _) =>
AnimatedContainer(
margin: EdgeInsets.all(5),
width: 100,
height: 100,
color: applicationcolor.color,
duration: Duration(milliseconds: 500),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(margin: EdgeInsets.all(5), child:
Text("AB")),
Consumer<ApplicationColor>(
builder: (context, applicationcolor, _) => Switch(
value: applicationcolor.isLightBlue,
onChanged: (newValue) {
applicationcolor.isLightBlue = newValue;
},
),
),
Container(margin: EdgeInsets.all(5), child:
Text("LB")),
],
)
],
),
),
),
),
);
}
}

application_color.dart
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

class ApplicationColor with ChangeNotifier {


bool _isLightBlue = true;

bool get isLightBlue => _isLightBlue;


set isLightBlue(bool value){
_isLightBlue = value;
notifyListeners();
}

Color get color => (_isLightBlue) ? Colors.lightBlue : Colors.amber;


}

sebelum itu silahkan tambahkan plugin provider:^6.0.0 di pubspec.yaml seperti berikut ini.
cupertino_icons: ^1.0.2
provider: ^6.0.2

dev_dependencies:
flutter_test:
sdk: flutter

You might also like