如何防止用户返回上一页。
例如我有page 1, page 2, submission successful
,
我注意到即使我不包含后退按钮并且用户尝试使用设备后退按钮/手势,前一个屏幕也会显示给用户。
我如何使当用户尝试使用他的设备后退按钮或滑动手势时,他被发送到屏幕page 1
而不是page 2
如何防止用户返回上一页。
例如我有page 1, page 2, submission successful
,
我注意到即使我不包含后退按钮并且用户尝试使用设备后退按钮/手势,前一个屏幕也会显示给用户。
我如何使当用户尝试使用他的设备后退按钮或滑动手势时,他被发送到屏幕page 1
而不是page 2
要禁用后退按钮,您可以使用 WillPopScope 包装您的小部件。
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async => false,
child: .....
);
}
对于滑动动画,您可以使用GesturedDetector包装小部件并切换选项卡。
GestureDetector(
onHorizontalDragEnd: (DragEndDetails details) => _onHorizontalDrag(details),
child: Container(),
)
另一种选择是PageView。PageView.builder 实现的示例是:
PageView.builder(
itemBuilder: (context, position) {
return _buildPage();
},
itemCount: listItemCount,
)
您可以使用 WillPopScope 小部件
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () => Future.value(false);
child: // The rest of your code here
)}
这将阻止它使用 android 后退按钮导航回来。
一种方法是调用pushReplacement
yourNavigator
而不是push
. 这样,您就可以从堆栈中删除旧路由,并用新路由替换它。