96SEO 2026-02-23 12:19 1
2.更方便的实现SnackBar、Dialog、BottomSheet

在图1的过程中我们实现了路由的跳转以及路由跳转的时候从堆栈中移除当前页面的功能。
在本篇博客的demo中还提供了Getx路由跳转的传值功能以及使用GetX实现SnackBar、Dialog,路由的别名跳转等功能。
图3.使用GetX实现Snackbar,Dialog,BottomSheet
本来想着一步一步的把创建的过程提出来的仔细一想这些基础的代码看到的兄弟们应该都会这里直接贴出来新建的这个工程吧。
您可以下载下来看一下这些功能怎么实现实在懒或者是感觉代码太简单的haul的话也可以在脑海中思考下这些功能的实现。
和其他的Flutter三方库一样笔者这里用的getx的版本为4.6.6.首先我们应该在yaml文件中配置下getX。
安装好之后我们把MaterialApp改成GetMaterialApp即可在项目中使用GetX了。
我们先看一下普通的路由跳转例如在上面的例子中普通的路由跳转我们应该这么写
Navigator.push(context,MaterialPageRoute(builder:
代码是不是简单了很多而且不需要获取上下文的context有些情况下获取context比较麻烦。
当我们需要使用路由跳转并传值的时候我们仅需要再GetMaterialApp中配置getPages属性代码如下
package:state_management/fourth.dart;
package:state_management/second.dart;
package:state_management/third.dart;
MyApp({super.key});overrideWidget
ColorScheme.fromSeed(seedColor:
Colors.deepPurple),useMaterial3:
?Text(上一个页面传递的参数${Get.arguments}):const
debugPrint(dataFromFourth:$dataFromFourth);
2.更方便的实现SnackBar、Dialog、BottomSheet
使用getx,我们可以在不使用context的情况下使用很少代码实现Snackbar、dialog,BottomSheet。
ScaffoldMessenger.of(context).showSnackBar(
上一章节中我们简单体验了GetX的以便方便之处这一节我们将详细的讲解下Fluttter的状态管理功能。
这是一种手动状态管理器内存消耗最小使用较少的内存接近0mb当UI中的单独组件越多性能越突出。
我们以计数器的效果为例看一下GetBuilder的用法在下面的实例中我们点击count按钮计时器每次加1.
首先我们创建一个GetxController用来保存计时器变量这里要注意的是GetBuilder是手动状态管理器我们需要主动的调用update方法代码如下
在使用GetBuilder的页面我们只需要使用GetBuilder包裹住自己的Widget即可。
我们通过Get.put方法获取GetxController实例。
当我们点击按钮的时候直接调用GetxController中的方法即可
package:state_management/controllers/counterController.dart;class
{StateManagementPage({super.key});final
Get.put(CounterController());overrideWidget
MainAxisAlignment.center,children:
Widget[GetBuilderCounterController(builder:
Text(当前Count的值:${_.counter});},),//
(){counterController.increment();},
在上述的代码中我们首先初始化了一个GetxController实例然后调用该实例的increment方法初次之外我们还可以每次创建GetBuilder的时候都调用GetxController的初始化方法代码如下
GetBuilderCounterController(builder:
Get.findCounterController().increment();
package:state_management/controllers/counterController.dart;class
{StateManagementPage({super.key});overrideWidget
MainAxisAlignment.center,children:
Widget[GetBuilderCounterController(builder:
Text(当前Count的值:${_.counter});},init:
(){Get.findCounterController().increment();},
GetBuilder提供了一个id参数用于局部更新界面。
通过指定不同的id可以实现更精细的控件刷新避免整个页面刷新。
package:state_management/controllers/partialRefreshController.dart;class
PartialRefreshPage({super.key});overrideWidget
MainAxisAlignment.center,children:
40,),GetBuilderPartialRefreshController(id:
PartialRefreshController(),),const
40,),GetBuilderPartialRefreshController(id:
PartialRefreshController(),),const
{Get.findPartialRefreshController().incrementCounter1();},child:
{Get.findPartialRefreshController().incrementCounter2();},child:
GetBuilder用于简单的状态管理它是一个手动状态管理器需要我们手动调用update方法更新页面使用GetBuilder的时候要确保对应的GetxController被初始化使用
当我们使用Obx的时候第一步先定义一个控制器包含响应式变量counter和增加计数的方法。
Get.put(CounterController());return
${counterController.counter},style:
24),);}),),floatingActionButton:
FloatingActionButton(onPressed:
{counterController.increment();
在界面中分别用Obx监听counter1和counter2的变化。
multi_counter_controller.dart;class
Get.put(MultiCounterController());return
MainAxisAlignment.center,children:
24))),ElevatedButton(onPressed:
counterController.incrementCounter1,child:
Text(增加计数器1),),ElevatedButton(onPressed:
counterController.incrementCounter2,child:
MyApp({super.key});overrideWidget
GetX提供了国际化的功能我们只需要继承Translations把要国际化的内容以键值对的形式放在字典里即可
使用的时候只要将.tr追加到指定的键上就会使用Get.locale和Get.fallbackLocale的当前值进行翻译。
当我们需要修改语言的时候调用Get.updateLocale(locale)来更新语言环境。
然后翻译会自动使用新的locale。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback