Flutter 3 基础07: 重构按钮代码

在上一篇文章中,我们成功添加了一个按钮控件。当然,我们还会学习和添加更多控件。但是,随着增加的控件变多,就会让 main.dart 文件中的代码变得臃肿,严重影响代码质量。

本文就会对代码进行一次重构,把按钮控件的代码迁移到独立文件中。

启动 Android Studio,打开 hello_world 项目,运行模拟器,这样就可以实时看到编码产生的效果。现在,我们能看到部件导航页面的绿色按钮。

现在,让我们动手完成重构工作。

创建按钮文件

  1. 在项目的 lib 目录下,创建一个名称为 widget 新文件夹:
  1. 在 lib/widget 文件夹下,创建一个 my_button.dart 的新文件:
  1. 打开 lib/widget/my_button.dart 文件,添加下面的导入命令:
dart 复制代码
import 'package:flutter/material.dart';
  1. 继续在导入命令下面,输入 stless,会出现如下提示:
  1. 接着,按下回车键,编辑器会自动生成如下代码:
  1. 在自动生成代码的光标处,输入类名称 MyButton, 按下回车键,产生的代码如下所示:
dart 复制代码
import 'package:flutter/material.dart';  
  
class MyButton extends StatelessWidget {  
  const MyButton({super.key});  
  
  @override  
  Widget build(BuildContext context) {  
    return const Placeholder();  
  }  
}

迁移按钮代码

  1. 找到并打开 main.dart 文件,定位到下面的代码并拷贝:
dart 复制代码
MaterialButton(  
  textColor: Colors.white,  
  color: Colors.green,  
  shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0)),  
  onPressed: () {  
    print('按钮被点击');  
  },  
  child: const Text('显示'),  
)
  1. 回到 my_button.dart 文件,找到下面的代码:
dart 复制代码
return const Placeholder();  
  1. 删除 const Placeholder() 这部分代码,粘贴我们刚才拷贝的代码:
dart 复制代码
@override  
Widget build(BuildContext context) {  
  return MaterialButton(  
    textColor: Colors.white,  
    color: Colors.green,  
    shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0)),  
    onPressed: () {  
      print('按钮被点击');  
    },  
    child: const Text('显示'),  
  );  
}

替换按钮代码

  1. 打开 main.dart 文件,在文件的开头,加入下面的导入命令:
dart 复制代码
import 'package:hello_world/widget/my_button.dart';
  1. 继续在 main.dart 文件中,找到刚才拷贝的代码,并删除这些代码,替换为如下代码:
dart 复制代码
MyButton()

这部分完整的代码如下:

dart 复制代码
// 创建一组彩色的容器  
static List<Widget> pages = <Widget>[  
  Container(color: Colors.red),  
  Container(  
      child: const MyButton()),  
  Container(color: Colors.blue)  
];

这样,我们的代码清爽了许多。不管以后按钮代码变得多复杂,这里依旧整洁。

验证效果

热重启项目,点击部件导航图标,按钮依然正常显示(当然,与重构之前没有变化),点击按钮,控制台也能够正常输出。重构成功。

部件页面:

控制台输出:

提交代码

我们已经完成了按钮控件的重构,又到达了一个小小的里程碑,应该对代码进行提交,保持良好编程习惯。

shell 复制代码
git add .
git commit -m '重构按钮控件到独立文件。'
相关推荐
ITOM运维行者29 分钟前
PHP性能监控怎么做?从响应时间到慢函数的6个关键指标
前端·javascript·后端
成旭先生41 分钟前
AI 文本审核 API:一段中文文本判风险等级、命中标签与处置建议
java·前端·人工智能·api接口·内容风控·文本审核·ugc审核
liangshanbo12151 小时前
前端面试题:AI 对话中超长消息导致内存溢出,怎么解决?
java·开发语言·前端
静默回滚1 小时前
PDF能打开却不能复制,原来是权限密码
前端
律宏阔1 小时前
Dart FFI 内存管理:用 using + Arena 替代嵌套 try-finally
前端·flutter
guslegend1 小时前
脚手架入门:必要性、核心功能与执行原理
前端·架构·node.js·脚手架·前端工程化
律宏阔1 小时前
Flutter 调用 Go:从 c-shared + ffigen 到 @Native + Native Assets 踩坑记录
前端·flutter
LEE1 小时前
前端转型全栈 05:SQL 与迁移,AI 写的 SQL 怎么安全上线
前端·后端·ai编程
用户15741568165341 小时前
macOS 打包体积异常的排查实录
前端
数据掘金1 小时前
小程序埋点方案上线前要检查哪些点?我用一张检查清单过了二十多项
前端