首页
学习
活动
专区
圈层
工具
发布

Flutter主题切换——让你的APP也能一键换肤

今天我们就来看看,如何在 Flutter 中给你的 App 添加换肤功能。...添加依赖 在该案例中,我使用到了 provider 和 flustars 两个库,简单介绍一下这两个库: provider 官方推荐的状态管理库,相比其他状态管理库使用起来比较方便。...---- 以上就是关于我们使用的两个第三方库的介绍,如果想要使用,我们需要在pubspec.yaml文件中添加如下内容: provider: ^4.0.5flustars: ^0.2.6+1 准备工作做好了...Provider.of(context).setTheme(colorKey); 我们先来说说上面这段代码,重点就在于 ThemeData 的设置: ?...最后 以上就是关于如何在 Flutter 中切换主题的详细内容了。可以看出,相较于原生应用主题的适配,在 Flutter 中实现换肤的功能简单很多了。

5.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    FlutterDojo设计之道—状态管理之路(六)

    RaisedButton( onPressed: () => model.add(), child: Text('add'), ), 在button的点击事件中,我们并没有直接使用每次调用Provider.of...简单的说,就是在button的event handler中,触发了Provider.of,但是这个时候,传入的Context并不在Widget中,导致notifyListeners出错。...Provider.of(context):用于需要根据数据的变化而自动刷新的场景 Provider.of(context, listen: false):用于只需要触发Model中的操作而不关心刷新的场景...解决方法也很简单,一个是将需要使用Provider的Widget抽取出来,放入一个新的Widget中,这样在这个Widget中,就有了属于自己的Context,另一种,就是通过Consumer,来创建一个新的...Provider.of:Context内容进行Rebuild Consumer:Model内容变化进行Rebuild Selector:Model中的指定内容变化进行Rebuild 可以发现,虽然都是获取数据

    1.2K10

    flutter如何进行状态管理

    所以,我们直接在 MaterialApp 的外层使用 Provider 进行包装,就可以把数据资源依赖注入到应用中,这里需要注意的是,由于封装的数据资源不仅需要为子 Widget 提供读的能力,还要提供写的能力...而如果只需要为子 Widget 提供读能力,直接使用 Provider 即可。 4、在子组件中通过of方法获取属性与方法,部署状态。...) { //取出资源 final _counter = Provider.of(context); return Scaffold( //...(context),首先注意调用的地方,是在build函数中,因为在build函数中可以访问到context,然后是of函数的返回值的类型是封装的数据状态,此处不能省略。...) { final _counter = Provider.of(context); final textSize = Provider.of<double

    1.8K11

    Flutter跨页面改变BottomNavigationBar选中下标

    思路: 解决方案1: flutter内有Provider的状态管理,可以定义一个全局的Provider ,在Main函数内装载,放入顶层结构中,全局访问Provider改变Provider的状态,以此来更新...return Consumer( builder: (_,__,___){ // 获取更改的下标 int currentIndex = Provider.of...children: _pageList, ), ); }, ); } 4.在A页面调用这个Provider 使tabBar改变选中下标 // 如A...(context,listen: false).changeIndex(1); } 下面看一下方案2 使用event_bus发送事件广播的方式...方案2 使用event_bus发送事件与监听事件的方式,向事件总线中添加了一个事件,需要定义发送的消息内容,同时发送者发送数据,监听者监听事件作出相应。 可依据自我情况合理选择实现方案

    1.4K20
    领券