例
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:scoped_model/scoped_model.dart';
class ScopedModelDemo extends StatefulWidget{
@override
_ScopedModelDemoState createState()=>_ScopedModelDemoState();
}
class _ScopedModelDemoState extends State<ScopedModelDemo>{
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return ScopedModel<SMModel>(
model: SMModel('value111','value222'),
child: Scaffold(
appBar: AppBar(
title: Text('scoped_model状态管理样例'),
),
body: ScopedModelDescendant<SMModel>(
builder: (context,child,smmodel){
return Column(
children: [
Text(smmodel.value1),
Text(smmodel.value2),
TextButton(
onPressed: (){
smmodel.changeValue1('value100个1');
},
child: Text('修改value1'),
),
TextButton(
onPressed: (){
smmodel.changeValue2('value100个2');
},
child: Text('修改value2'),
),
],
);
},
),
),
);
}
}
//继承Mode的数据状态视图
class SMModel extends Model{
String _value1;
String _value2;
String get value1=>_value1;
String get value2=>_value2;
SMModel(String v1,String v2){
_value1=v1;
_value2=v2;
}
changeValue1(String v1){
_value1=v1;
notifyListeners();
}
changeValue2(String v2){
_value2=v2;
notifyListeners();
}
}