Files
flutter_provider_demo/lib/main.dart
yangjie 8df8e4f840 docs(main.dart, basic_provider_page.dart): 更新注释和格式
在 main.dart 文件中添加了对 Flutter 应用程序结构的详细注释,增强代码可读性。
在 basic_provider_page.dart 文件中调整了注释格式,确保一致性和清晰性。
2025-05-16 16:32:17 +08:00

137 lines
4.4 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 导入 Flutter 的 Material UI 包,用于构建用户界面
import 'package:flutter/material.dart';
// 导入 provider 包,用于状态管理
import 'package:provider/provider.dart';
// 导入各个示例页面的文件
import 'pages/basic_provider_page.dart';
import 'pages/multi_provider_page.dart';
import 'pages/change_notifier_page.dart';
import 'pages/consumer_page.dart';
import 'pages/selector_page.dart';
import 'pages/future_provider_page.dart';
import 'pages/stream_provider_page.dart';
import 'pages/proxy_provider_page.dart';
// Flutter 应用程序的入口点
void main() {
// 运行 MyApp 小部件作为应用程序的根
runApp(const MyApp());
}
// MyApp 是一个无状态小部件,是应用程序的根小部件
class MyApp extends StatelessWidget {
// MyApp 的构造函数
const MyApp({super.key});
// build 方法描述了如何构建小部件的用户界面
@override
Widget build(BuildContext context) {
// MaterialApp 是一个 Flutter 提供的便捷小部件,封装了应用程序通常需要的一些功能
return MaterialApp(
// 应用程序的标题,通常在任务切换器中显示
title: 'Provider Examples',
// 应用程序的主题
theme: ThemeData(
// 设置主题的主色调为蓝色
primarySwatch: Colors.blue,
),
// 应用程序启动时显示的首页
home: const HomePage(),
);
}
}
// HomePage 是一个无状态小部件,用于显示 Provider 示例的列表
class HomePage extends StatelessWidget {
// HomePage 的构造函数
const HomePage({super.key});
// build 方法描述了如何构建小部件的用户界面
@override
Widget build(BuildContext context) {
// Scaffold 是 Material Design 布局结构的基本实现
return Scaffold(
// 应用程序栏
appBar: AppBar(
// 应用程序栏的标题
title: const Text('Provider Examples'),
),
// 页面的主体内容,使用 ListView 来显示可滚动的列表
body: ListView(
// 列表中的子项
children: [
// 列表项:基本 Provider 示例
ListTile(
// 列表项的标题
title: const Text('Basic Provider'),
// 点击列表项时的回调函数
onTap: () => Navigator.push(
context,
// 创建一个 MaterialPageRoute 来导航到 BasicProviderPage
MaterialPageRoute(builder: (_) => const BasicProviderPage()),
),
),
// 列表项MultiProvider 示例
ListTile(
title: const Text('MultiProvider'),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const MultiProviderPage()),
),
),
// 列表项ChangeNotifierProvider 示例
ListTile(
title: const Text('ChangeNotifierProvider'),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const ChangeNotifierPage()),
),
),
// 列表项Consumer 示例
ListTile(
title: const Text('Consumer'),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const ConsumerPage()),
),
),
// 列表项Selector 示例
ListTile(
title: const Text('Selector'),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const SelectorPage()),
),
),
// 列表项FutureProvider 示例
ListTile(
title: const Text('FutureProvider'),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const FutureProviderPage()),
),
),
// 列表项StreamProvider 示例
ListTile(
title: const Text('StreamProvider'),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const StreamProviderPage()),
),
),
// 列表项ProxyProvider 示例
ListTile(
title: const Text('ProxyProvider'),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const ProxyProviderPage()),
),
),
],
),
);
}
}