如何防止后退按钮返回上一页

时间:2019-08-15 19:31:40

标签: flutter

如何防止用户返回上一页。

例如,我有page 1, page 2, submission successful

我注意到,即使我不包括后退按钮,并且用户尝试使用设备的后退按钮/手势,也会向用户显示上一个屏幕。

当用户尝试使用设备的后退按钮或轻扫访客时,如何将他发送到屏幕page 1而不是page 2

3 个答案:

答案 0 :(得分:0)

要禁用后退按钮,可以使用WillPopScope包装小部件。

df = pd.concat([pd.DataFrame([0]*4, columns=['rate']), df])
df.index.name = 'hour'

fig, ax = plt.subplots(1,1, figsize = (12, 8))
df.plot(kind = "bar", xlim = (0,24), ax=ax)

对于滑动动画,您可以使用GesturedDetector包装小部件并切换标签。

@override 
Widget build(BuildContext context) { 
  return WillPopScope( 
    onWillPop: () async => false,
    child: .....
  ); 
}

另一个选项是PageView。 PageView.builder实现的示例是:

GestureDetector( 
  onHorizontalDragEnd: (DragEndDetails details) => _onHorizontalDrag(details), 
  child: Container(),
 )

答案 1 :(得分:0)

您可以使用WillPopScope小部件

 Widget build(BuildContext context) {

    return WillPopScope(
        onWillPop: () => Future.value(false); 
        child: // The rest of your code here
 )}

这将阻止它使用android后退按钮导航回去。

答案 2 :(得分:0)

一种实现方法是调用pushReplacement的{​​{1}}方法而不是Navigator。这样,您就可以从堆栈中删除旧路由,然后将其替换为新路由。