首页 > 解决方案 > 在 Flutter 中更改页面的内容。我这样做(有点)对吗?

问题描述

因此,在我的 Flutter 应用程序中,我有几个属于同一上下文的不同屏幕。你可以把它们想象成子页面(想想一个一步一步的教程,一个屏幕一个屏幕的说明)。

我认为有几十个不同的页面是没有意义的

 class Tutorial extends StatefulWidget {...}

 class Tutorial2 extends StatefulWidget {...}

 class Tutorial3 extends StatefulWidget {...}

所以我目前正在做的只是一个

 class TutorialPage extends StatefulWidget{Widget _body;}

使用类似的构建方法

@override 
Widget build(BuildContext context) {
 return _body; }

然后在用户使用函数完成教程时以编程方式更改该 _body

tutorialStart(){
 setState({_body = Scaffold(body: Center(...),
 );});
}

tutorial2(){
    setState({ _body = Scaffold(body: Center(...),
     );})
    }

但问题是,我觉得这不是一个好方法,甚至不是一个体面的方法。我对 Flutter 很陌生,所以我想知道在不创建数十个页面的情况下更改页面内容的更好方法是什么?我希望我能够很好地表达自己,让您理解我的问题,谢谢您的帮助!

标签: flutter

解决方案


您好,您可以使用 [pageview][1],

请按照以下步骤操作:

  1. 创建课堂教程的模型,然后创建模型列表。

  2. 在页面视图中迭代同一列表的循环。

  3. 单击下一个按钮时,它将调用下一页。

谢谢 [1]:https ://api.flutter.dev/flutter/widgets/PageView-class.html


推荐阅读