当用户在我的 flutter 应用程序中按下后退按钮时,我需要调用一个函数,在带有 java 的 android 中我可以使用以下代码来实现它
@Override
public void onBackPressed() {
//some function
}
Run Code Online (Sandbox Code Playgroud)
颤振中有类似的东西吗?
Abb*_*bas 12
编辑:正如@Augustin 所指出的,当第二个屏幕弹出时,以下方法适用于所有情况,而不仅仅是按下后退按钮时。
简而言之 - 您可以在Navigator.push()上使用.then()
为什么?如何?
主屏幕-从您正在导航的屏幕
第二个屏幕-到您正在导航的屏幕
当弹出页面时,即当 Navigator.pop() 在第二个屏幕上运行时,主屏幕上的 Navigator 返回一个“完成”的 future
因此,当弹出页面(第二个屏幕)时,Navigator.push()(主屏幕)上的 .then() 方法将运行。
像这样的东西 - 主屏幕
floatingActionButton: FloatingActionButton(
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (ctx) => SecondPage()
)).then(
(context) {
isAppleRed();
}
);
},
tooltip: 'Increment',
child: Icon(Icons.add),
),
Run Code Online (Sandbox Code Playgroud)
isAppleRed() - 只是为了让事情清楚:p
bool isAppleRed() {
print('Yes!');
return true;
}
Run Code Online (Sandbox Code Playgroud)
一旦按下第二个屏幕上的后退按钮,.then 块内的代码就会运行。
希望这对您有任何帮助:)
Aug*_*n R 10
您正在寻找WillPopScope小部件。
用法 :
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
onBackPressed(); // Action to perform on back pressed
return false;
},
child: Scaffold(),
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3219 次 |
| 最近记录: |