在我想要控制的颤振应用程序中,将弹出IOS的范围,但它不起作用。而且我没有像一些例子所建议的那样使用PageRoute,而且CupertinoWillPopScope包也不起作用,它会引发anchorpoint
错误。有人能帮我吗?
我为IOS尝试了gestureDetector
,但它并没有触发对上一页的操作,这正是我想要做的。
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(),
);
}
发布于 2022-11-13 12:01:01
假设您想从Page (NewPage)转到Page (SecondRoute)。要从A导航到B,我们使用以下代码:
Navigator.push(context, MaterialPageRoute(builder: (context) => const SecondRoute()))
稍后,当用户使用滑动手势或任何其他方式返回到页面A时,如果您想在用户从B到A时执行某些操作,我们可以在我们的Navigator.push函数中调用‘to’。在用户从B页返回到A页后,通过下面的代码查看文本更改。
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(),
);
}
}
在“那么”里面,你可以调用任何你想要调用的函数。希望这能为你寻找的东西服务。
https://stackoverflow.com/questions/74419860
复制相似问题