flutter 全局改变 theme


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();

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容