每个界面继承一个通用的父类界面,显示内容又能根据自己去变动,加载不同widget

如果你想要每个界面继承一个通用的父类界面,但又可以根据自己的需要加载不同的 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,并且可以根据自己的需求加载不同的子界面。

希望这个示例对你有所帮助!

猜你喜欢

转载自blog.csdn.net/ZQ200720/article/details/133028216