首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WillPopScope在颤振中不适用于IOS

WillPopScope在颤振中不适用于IOS
EN

Stack Overflow用户
提问于 2022-11-13 09:42:31
回答 1查看 39关注 0票数 0

在我想要控制的颤振应用程序中,将弹出IOS的范围,但它不起作用。而且我没有像一些例子所建议的那样使用PageRoute,而且CupertinoWillPopScope包也不起作用,它会引发anchorpoint错误。有人能帮我吗?

我为IOS尝试了gestureDetector,但它并没有触发对上一页的操作,这正是我想要做的。

代码语言:javascript
运行
复制
if (!Platform.isIOS) {
      return WillPopScope(
        onWillPop: () async {
          timerController.startTimer();
          !Navigator.of(context).userGestureInProgress;
          return true;
        },
        child: MyPage(),
      );
    } else {
      return GestureDetector(
        onHorizontalDragUpdate: (details) {
          int sensitivity = 8;
          if (details.delta.dx > sensitivity) {
            // Right Swipe
            //timerController.startTimer();
          } else if (details.delta.dx < -sensitivity) {
            //Left Swipe
            timerController.startTimer();
          }
        },
        child: MyPage(),
      );
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-13 12:01:01

假设您想从Page (NewPage)转到Page (SecondRoute)。要从A导航到B,我们使用以下代码:

代码语言:javascript
运行
复制
Navigator.push(context, MaterialPageRoute(builder: (context) => const SecondRoute()))

稍后,当用户使用滑动手势或任何其他方式返回到页面A时,如果您想在用户从B到A时执行某些操作,我们可以在我们的Navigator.push函数中调用‘to’。在用户从B页返回到A页后,通过下面的代码查看文本更改。

代码语言:javascript
运行
复制
import 'package:flutter/material.dart';

class NewPage extends StatefulWidget {
  NewPage({Key? key}) : super(key: key);

  @override
  State<NewPage> createState() => _NewPageState();
}

class _NewPageState extends State<NewPage> {
  String inputstring = 'Here is a default String';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(inputstring),
              ElevatedButton(
                onPressed: () {
                  Navigator.push(
                          context, MaterialPageRoute(builder: (context) => const SecondRoute()))
                      .then((value) => {
                            setState(() {
                              inputstring = 'New Text after navigation is popped';
                            })
                          });
                },
                child: Text('GO To Second Page'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class SecondRoute extends StatelessWidget {
  const SecondRoute({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
    );
  }
}

在“那么”里面,你可以调用任何你想要调用的函数。希望这能为你寻找的东西服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74419860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档