在我想要控制的顫振應用程式中,將彈出 IOS 的范圍,但它不起作用。而且我沒有像建議的一些示例那樣使用 PageRoute 并且CupertinoWillPopScope包不起作用,它會引發anchorpoint. 所以有人可以幫我嗎?
我嘗試gestureDetector了 IOS,但它沒有觸發對上一頁的操作,這是我想要做的。
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(),
);
}
uj5u.com熱心網友回復:
假設您想從頁面 A(NewPage) 轉到頁面 B(SecondRoute)。要從 A 導航到 B,我們使用以下代碼:
Navigator.push(context, MaterialPageRoute(builder: (context) => const SecondRoute()))
稍后,當用戶使用滑動手勢或任何其他方式回傳頁面 A 時,如果您想在用戶從 B 回到 A 時執行一些操作,我們可以在 Navigator.push 函式中呼叫“then”。用戶從頁面 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(),
);
}
}
在“then”中,您可以呼叫任何您想要的函式。希望這可以滿足您的需求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/532391.html
標籤:安卓IOS扑镖
上一篇:如何從android中的firebase資料庫中獲取密鑰
下一篇:如何將文本與元素的開頭對齊
