Flutter:如何在对话框中使用路由器
Flutter : How to use router on dialog
首先我有一个打开对话框的按钮
单击重复时,我希望用户导航器在这样的对话框上推送一个页面
我怎么不能用 flutter 做到这一点?感谢您的帮助!
您是否尝试过更改对话框的内容而不是使用路由器?就像使用一个状态变量,当你点击重复更新对话框内容时它会改变,然后当你点击保存时恢复它
您可以将 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")),
)
],
),
)),
),
),
);
}
}
首先我有一个打开对话框的按钮
单击重复时,我希望用户导航器在这样的对话框上推送一个页面
我怎么不能用 flutter 做到这一点?感谢您的帮助!
您是否尝试过更改对话框的内容而不是使用路由器?就像使用一个状态变量,当你点击重复更新对话框内容时它会改变,然后当你点击保存时恢复它
您可以将 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")),
)
],
),
)),
),
),
);
}
}