Flutter:如何在对话框中使用路由器
Posted
技术标签:
【中文标题】Flutter:如何在对话框中使用路由器【英文标题】:Flutter : How to use router on dialog 【发布时间】:2021-12-31 10:59:48 【问题描述】:首先我有一个按钮来打开一个对话框
当点击重复时,我想用户导航器在对话框中推送一个页面,如下所示
我怎么不能用颤振做到这一点?感谢您的帮助!
【问题讨论】:
任何机构有解决方案? 【参考方案1】:您可以使用 PageView.builder 和 PageController 来实现您的预期结果。我分享了一个参考example
,您可以根据需要对其进行修改。
class WelcomeScreen extends StatefulWidget
@override
_WelcomeScreenState createState() => _WelcomeScreenState();
class _WelcomeScreenState extends State<WelcomeScreen>
PageController _controller = PageController();
@override
Widget build(BuildContext context)
return Scaffold(
appBar: AppBar(
title: Text("Pagination Example"),
),
body: Padding(
padding: EdgeInsets.all(24.0),
child: Center(
child: PageView.builder(
controller: _controller,
itemCount: 2,
itemBuilder: (context, index) => Scaffold(
appBar: AppBar(
title: Text("Page $index"),
leading: index == 1
? IconButton(
onPressed: ()
_controller.previousPage(
duration: Duration(milliseconds: 100),
curve: Curves.ease);
,
icon: Icon(Icons.arrow_back),
)
: null,
),
body: Column(
children: [
Text("Content of Page $index"),
Visibility(
visible: index == 1 ? false : true,
child: ElevatedButton(
onPressed: ()
_controller.nextPage(
duration: Duration(milliseconds: 100),
curve: Curves.ease);
,
child: Text("Next Page")),
)
],
),
)),
),
),
);
【讨论】:
这个答案很好,感谢您的帮助 很高兴为您提供帮助...:)【参考方案2】:您是否尝试过更改对话框的内容而不是使用路由器?就像使用当你点击重复更新对话框内容时改变的状态变量,然后当你点击保存时恢复它
【讨论】:
我也想过。但是内容多了,就很难维护了。所以我认为对话中的路由器是最好的方法:D,感谢您的帮助!以上是关于Flutter:如何在对话框中使用路由器的主要内容,如果未能解决你的问题,请参考以下文章
使用 Flutter 导航和路由时如何保持 BottomNavigationBar
如何在 Bloc Login Flutter 中使用带有身份验证的 NavigationDrawer 路由
如何使用 GetX 包管理 Flutter Web URL 路由?