美文网首页
flutter 全局改变 theme

flutter 全局改变 theme

作者: 不知道起什么名字的小白 | 来源:发表于2019-10-12 18:29 被阅读0次


1.引用 google 状态管理库


provider: ^3.0.0+1


2.自定义model 继承 ChangeNotifier

class SkinModel extends ChangeNotifier {

MaterialColor color =Colors.blue;

}

3.使用 ChangeNotifierProvider

void main() => runApp(ChangeNotifierProvider(

builder: (context) =>SkinModel(),

      child:MyApp(),

    ));

class MyApp extends StatelessWidget {

// This widget is the root of your application.

  SkinModel skinModel;

  @override

  Widget build(BuildContext context) {

return MaterialApp(

title:'Flutter Demo',

      theme:ThemeData(

primarySwatch:Provider.of(context).color,

      ),

      home:MyHomePage(),

    );

  }

}

4. 修改样式

void _changeState() {

SkinModel skinModel =Provider.of(context)..color =Colors.red;

  skinModel.notifyListeners();

}

相关文章

网友评论

      本文标题:flutter 全局改变 theme

      本文链接:https://www.haomeiwen.com/subject/kgkcmctx.html