首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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 实现换肤的功能简单很多了。

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

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.ofContext内容进行Rebuild Consumer:Model内容变化进行Rebuild Selector:Model的指定内容变化进行Rebuild 可以发现,虽然都是获取数据

87010

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.5K11

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.1K20

Flutter Provider 使用指南详解

Provider 提供了几种不同的方法来访问和更新状态,包括使用 Provider.of()、Consumer 和 Selector 等。...使用 Provider.of() Provider.of() 是 Provider 提供的最基本的方法之一,它允许您在组件树中直接访问数据模型。当数据模型发生变化时,依赖它的组件会自动进行更新。...final cart = Provider.of(context); // 通过 Provider.of() 访问数据模型的状态 Text('${cart.items.length} items...使用 Provider.of() Provider.of() 是 Provider 提供的最基本的方法之一,它允许您在组件树中直接访问数据模型。当数据模型发生变化时,依赖它的组件会自动进行更新。...final cart = Provider.of(context); // 通过 Provider.of() 访问数据模型的状态 Text('${cart.items.length} items

68010

Flutter版本玩Android客户端(7)——状态管理

在上一篇文章Flutter版本玩Android客户端(6)——登录注册模块以及文章收藏与取消完成了登录模块,但遗留的问题是未进行状态同步,导致left drawer的状态没有变化。...状态管理 对于登录状态这个值,很多widget需要用到,属于全局状态,这里使用provider进行管理。 关于状态管理的更多知识,可以参考后面的文章。...提供初始化状态 在main入口处,根据sharedpreference的状态进行初始化,Provider包括MyApp类。...ui的切换以及跳转逻辑的控制,获取登录状态如下: final _loginState = Provider.of(context); 根据是否登录来控制用户名的显示, Container...(context); 拿到LoginState后,像设置普通对象一样,那么需要使用该对象的地方将会自动同步。

79541
领券