【flutter for open harmony】第三方库Flutter 鸿蒙版 习惯打卡 实战指南(适配 1.0.0)✨
·
Flutter实战:开源鸿蒙习惯打卡组件
Flutter 三方库 cached_network_image 的鸿蒙化适配与实战指南
欢迎加入开源鸿蒙跨平台社区: https://openharmonycrossplatform.csdn.net
本文详细介绍如何在Flutter鸿蒙应用中实现一个习惯打卡组件,支持习惯管理和每日打卡。
一、前言
习惯养成需要持续的追踪和激励。本文将介绍如何在Flutter鸿蒙应用中实现一个习惯打卡组件,帮助用户养成良好习惯。
二、效果展示

2.1 功能特性
| 功能 | 描述 |
|---|---|
| 习惯列表 | 管理多个习惯 |
| 打卡功能 | 点击完成打卡 |
| 进度展示 | 显示完成进度 |
| 添加习惯 | 自定义添加新习惯 |
| 删除习惯 | 移除不需要的习惯 |
三、详细实现
import 'package:flutter/material.dart';
class HabitTrackerPage extends StatefulWidget {
const HabitTrackerPage({super.key});
State<HabitTrackerPage> createState() => _HabitTrackerPageState();
}
class _HabitTrackerPageState extends State<HabitTrackerPage> {
final List<Habit> _habits = [
Habit(name: '早起', icon: Icons.wb_sunny),
Habit(name: '运动', icon: Icons.fitness_center),
Habit(name: '阅读', icon: Icons.book),
];
void _toggleHabit(int index) {
setState(() {
_habits[index].isCompleted = !_habits[index].isCompleted;
});
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('习惯打卡')),
body: ListView.builder(
itemCount: _habits.length,
itemBuilder: (context, index) {
return ListTile(
leading: Icon(_habits[index].icon),
title: Text(_habits[index].name),
trailing: Checkbox(
value: _habits[index].isCompleted,
onChanged: (_) => _toggleHabit(index),
),
);
},
),
);
}
}
class Habit {
final String name;
final IconData icon;
bool isCompleted;
Habit({required this.name, required this.icon, this.isCompleted = false});
}
四、总结
本文详细介绍了如何在Flutter鸿蒙应用中实现一个习惯打卡组件。
五、参考资料
更多推荐

所有评论(0)