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
992 B
41 lines
992 B
import 'package:flutter/material.dart'; |
|
import 'package:provider/provider.dart'; |
|
import 'package:win_text_editor/frame/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); |
|
}
|
|
|