fix(app): 修复 4 个 Flutter 交互问题
1. 首页数据不刷新 — JournalRepository 添加 onJournalChanged Stream 变更通知,HomeBloc 订阅后自动刷新 2. 画笔再次点击不弹出面板 — 添加 ToolReactivated 事件, 工具栏检测已激活工具时发出重新激活信号 3. 钢笔铅笔效果一样 — 调整 perfect_freehand 参数 (pen: size 10/smooth 0.65, pencil: size 3/smooth 0.35) 4. 橡皮擦不生效 — ActiveStrokePainter 橡皮擦模式绘制 半透明灰色反馈,笔画完成后 setState 触发 Layer 1 重绘 5. 贴纸文字无法缩放 — DraggableElement 用 Scale 手势 替换 Pan 手势,支持双指缩放和旋转
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
// 首页 BLoC — 加载最近日记和心情概览
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:nuanji_app/data/models/journal_entry.dart';
|
||||
@@ -78,12 +80,24 @@ final class HomeError extends HomeState {
|
||||
|
||||
class HomeBloc extends Bloc<HomeEvent, HomeState> {
|
||||
final JournalRepository _journalRepo;
|
||||
StreamSubscription<void>? _changeSubscription;
|
||||
|
||||
HomeBloc({required JournalRepository journalRepository})
|
||||
: _journalRepo = journalRepository,
|
||||
super(const HomeInitial()) {
|
||||
on<HomeLoadData>(_onLoadData);
|
||||
on<HomeRefresh>(_onRefresh);
|
||||
|
||||
// 监听日记变更,自动刷新首页数据
|
||||
_changeSubscription = _journalRepo.onJournalChanged.listen((_) {
|
||||
add(const HomeRefresh());
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> close() {
|
||||
_changeSubscription?.cancel();
|
||||
return super.close();
|
||||
}
|
||||
|
||||
Future<void> _onLoadData(
|
||||
|
||||
Reference in New Issue
Block a user