You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

41 lines
995 B

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:win_text_editor/app/core/tab_manager.dart';
// 修改后的base_view.dart
abstract class BaseView extends StatefulWidget {
final String tabId;
const BaseView({super.key, required this.tabId});
@override
BaseViewState createState();
}
abstract class BaseViewState<T extends BaseView> extends State<T> {
late final TabManager tabManager;
@override
void initState() {
super.initState();
tabManager = Provider.of<TabManager>(context, listen: false);
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
if (tabManager.activeTabId == widget.tabId) {
tabManager.setActiveViewState(this);
}
}
@override
void dispose() {
// 清理注册
tabManager.setActiveViewState(null);
super.dispose();
}
// 抽象方法改为在State中定义
void onOpenFolder(String folderPath);
void onOpenFile(String filePath);
}