美文网首页
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