WillPopScope 不适用于其他小部件

问题描述

我的 Flutter 应用中有多个小部件。如果我单击另一个小部件,则在 Widget build(BuildContext context) 顶部定义的 onWillPopScope 方法不起作用。你能给我建议如何修复它吗?谢谢

见下面的代码

 ExpansionTile(
                                  initiallyExpanded: false,title:
                                  Text('Solution',style: basicAlertBlack),children: <Widget>[
                                    Container(
                                      color: Colors.Amber.shade50,height:
                                      MediaQuery
                                          .of(context)
                                          .size
                                          .height /
                                          7,child: _solutionTextField(),)
                                  ],),

第二个小部件代码

 Widget _solutionTextField() {
 return TextField(

    focusNode: myFocusNode,keyboardType: TextInputType.multiline,maxLines: null,style: solution,controller: solutionController,decoration: new Inputdecoration(
        contentPadding: EdgeInsets.all(8),focusedBorder: InputBorder.none,enabledBorder: InputBorder.none,errorBorder: InputBorder.none,disabledBorder: InputBorder.none,hintText: 'Enter a solution'));

}

解决方法

能否提供更多背景信息?

正如documentations所说:

WillPopScope 类

注册一个回调来否决用户试图关闭封闭的 ModalRoute。

这意味着它将在 pop 操作上被调用。它可以通过单击返回箭头或 iOS 从边缘左侧向右滑动来从 android 导航调用。以及您通过 pop 调用的所有其他 Navigator 方法。所以它与点击 Widget 没有关系。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...