深色模式、首页设置页面和功能优化

This commit is contained in:
Developer
2026-04-02 07:06:55 +08:00
parent f0a62ed68b
commit 954d173329
88 changed files with 12157 additions and 7578 deletions

View File

@@ -0,0 +1,211 @@
# GetX 框架文档
## 1. 核心功能
### 1.1 状态管理
- **响应式状态管理**:使用 Rx 变量实现数据响应式更新
- **简单状态管理**:通过 GetBuilder 实现局部状态更新
- **依赖注入**:使用 Get.put() 和 Get.find() 管理依赖
- **服务定位**:全局访问控制器和服务
### 1.2 路由管理
- **导航系统**Get.to()、Get.back()、Get.off()、Get.offAll()
- **命名路由**:支持命名路由配置
- **参数传递**:方便的页面间参数传递
- **过渡动画**:内置多种过渡动画效果
- **嵌套导航**:支持嵌套路由结构
### 1.3 依赖注入
- **全局依赖**:单例模式管理服务
- **懒加载**:按需初始化服务
- **生命周期管理**:自动处理依赖的生命周期
### 1.4 国际化
- **多语言支持**:配置多语言资源
- **动态语言切换**:运行时切换语言
- **语言资源管理**:集中管理语言文件
### 1.5 主题管理
- **亮/暗主题**:支持主题模式切换
- **自定义主题**:灵活配置主题样式
- **主题资源**:统一管理主题相关资源
## 2. 组件
### 2.1 消息弹窗
- **Snackbar**
```dart
Get.snackbar('标题', '内容');
```
- 支持自定义标题、内容、图标、颜色
- 可设置持续时间、位置、行为
### 2.2 对话框
- **默认对话框**
```dart
Get.defaultDialog(
title: '标题',
content: Text('内容'),
confirm: ElevatedButton(onPressed: () => Get.back(), child: Text('确定')),
);
```
- **自定义对话框**
```dart
Get.dialog(AlertDialog(...));
```
### 2.3 底部弹窗
- **BottomSheet**
```dart
Get.bottomSheet(
Container(
child: Column(children: [...]),
),
);
```
### 2.4 状态管理组件
- **GetBuilder**
```dart
GetBuilder<Controller>(
builder: (controller) => Text(controller.count.toString()),
);
```
- **Obx**
```dart
Obx(() => Text(controller.count.value.toString()));
```
- **GetX**
```dart
GetX<Controller>(
init: Controller(),
builder: (controller) => Text(controller.count.value.toString()),
);
```
## 3. 工具类
### 3.1 设备信息
- `Get.width`/`Get.height`:屏幕尺寸
- `Get.context`:当前上下文
- `Get.isDarkMode`:深色模式状态
- `Get.mediaQuery`:媒体查询
### 3.2 存储
- `GetStorage`:轻量级本地存储
```dart
final box = GetStorage();
box.write('key', 'value');
box.read('key');
```
### 3.3 网络请求
- `GetConnect`:网络请求工具
```dart
final api = GetConnect();
var response = await api.get('https://api.example.com');
```
### 3.4 其他工具
- `Get.focusScope`:焦点管理
- `Get.keyboard`:键盘管理
- `Get.platform`:平台信息
- `Get.isIOS`/`Get.isAndroid`:平台判断
## 4. 性能优势
### 4.1 轻量级
- 核心库体积小
- 内存占用低
- 无代码生成需求
### 4.2 高效响应式
- 基于 Streams 的响应式系统
- 智能依赖跟踪
- 避免不必要的重建
### 4.3 启动速度
- 初始化快速
- 路由切换流畅
- 热重载响应快
### 4.4 开发效率
- 简洁的 API
- 减少样板代码
- 易于学习和使用
## 5. 最佳实践
### 5.1 控制器设计
- 按功能模块划分控制器
- 使用 `onInit()` 初始化数据
- 使用 `onClose()` 清理资源
### 5.2 状态管理
- 简单状态使用 GetBuilder
- 复杂状态使用 Obx
- 全局状态使用单例控制器
### 5.3 路由管理
- 使用命名路由提高代码可读性
- 合理使用过渡动画
- 注意路由栈管理
### 5.4 依赖注入
- 服务类使用懒加载
- 控制器使用 Get.put()
- 避免过度依赖注入
## 6. 版本信息
- **当前版本**get: ^4.7.3
- **更新日志**:参考 pub.dev 官方文档
## 7. 示例代码
### 7.1 基本用法
```dart
// 1. 创建控制器
class HomeController extends GetxController {
var count = 0.obs;
void increment() {
count.value++;
}
}
// 2. 注入控制器
final controller = Get.put(HomeController());
// 3. 使用状态
Obx(() => Text('Count: ${controller.count.value}'));
// 4. 导航
Get.to(SecondPage());
// 5. 显示消息
Get.snackbar('提示', '操作成功');
```
### 7.2 高级用法
```dart
// 命名路由
GetMaterialApp(
routes: {
'/': (context) => HomePage(),
'/second': (context) => SecondPage(),
},
);
// 参数传递
Get.toNamed('/second', arguments: {'id': 123});
// 接收参数
final arguments = Get.arguments;
```
## 8. 总结
GetX 是一个功能强大、性能优秀的 Flutter 框架,通过提供简洁的 API 和丰富的功能,大大简化了 Flutter 应用的开发流程。它不仅提供了状态管理、路由管理等核心功能,还提供了许多实用的工具和组件,帮助开发者快速构建高质量的 Flutter 应用。
GetX 的设计理念是"简洁而强大",通过减少模板代码和提供直观的 API让开发者能够更专注于业务逻辑的实现。同时它的性能优势也使得应用运行更加流畅用户体验更好。