如果你想要每个界面继承一个通用的父类界面,但又可以根据自己的需要加载不同的 Widget,你可以通过以下步骤来实现:
1、创建一个通用的父类界面 ParentPage,继承自 StatefulWidget。
import 'package:flutter/material.dart';
class ParentPage extends StatefulWidget {
final Widget child;
const ParentPage({
required this.child});
_ParentPageState createState() => _ParentPageState();
}
class _ParentPageState extends State<ParentPage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Parent Page'),
),
body: widget.child,
);
}
}
在 ParentPage 中,我们通过传递一个 child 参数来决定要显示的具体的子界面。
2、创建多个子界面类,继承自 StatelessWidget,并分别实现自己的界面内容。
import 'package:flutter/material.dart';
class ChildPage1 extends StatelessWidget {
Widget build(BuildContext context) {
return Container(
child: Center(
child: Text('Child Page 1'),
),
);
}
}
class ChildPage2 extends StatelessWidget {
Widget build(BuildContext context) {
return Container(
child: Center(
child: Text('Child Page 2'),
),
);
}
}
这里我们创建了两个子界面类 ChildPage1 和 ChildPage2,它们分别显示不同的文本内容。
3、在主应用程序中,使用 ParentPage 并传递不同的子界面类作为 child 参数。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
title: 'Inherited Widget Demo',
home: ParentPage(child: ChildPage1()), // 使用 ChildPage1
);
}
}
在上述示例中,我们在 MyApp 中将 ParentPage 作为根部件,并传递 ChildPage1 作为参数。你可以在需要显示不同子界面的地方更改 child 参数来加载不同的子界面。
这样,每个界面都继承自通用的父类界面 ParentPage,并且可以根据自己的需求加载不同的子界面。
希望这个示例对你有所帮助!