首页 > 解决方案 > 从其他页面返回后关闭模态底页

问题描述

我对模态底页有疑问。在我使用 Navigator.push 到另一个页面后,当我返回时,模态底部表仍然存在。我已经尝试使用FocusScope.of(context).focusedChild.unfocus();Navigator.pop(context);仍然没有帮助。

模态底板代码:

floatingActionButton: FloatingActionButton(
            backgroundColor: Colors.blueAccent,
            child: Icon(
              Icons.add,
              color: Colors.white,
            ),
            onPressed: () {
              showModalBottomSheet(
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(8.0),
                ),
                context: context,
                isScrollControlled: true,
                builder: (context) => SingleChildScrollView(
                  child: Container(
                    padding: EdgeInsets.only(
                        bottom: MediaQuery.of(context).viewInsets.bottom),
                    child: AddTask(), //open statefull widget
                  ),
                ),
              );
            }),

添加任务代码:

     Row(
      children: <Widget>[
        InkWell(
          borderRadius: BorderRadius.circular(8),
          onTap: () async {
            FocusScope.of(context).focusedChild.unfocus();
            await DatabaseService(uid: user.uid, taskId: taskId)
                .updateTask(false, _titleValue, _notesValue,
                    UpdateChecklist().checklistInput, '', '', '');
            Navigator.push(
              context,
              MaterialPageRoute(
                  builder: (context) => TaskDetail(
                        uid: user.uid,
                        taskId: taskId,
                      )),
            );
          },
          child: Container(
            width: 40,
            height: 40,
            decoration: BoxDecoration(
                border: Border.all(color: Colors.blueAccent),
                borderRadius: BorderRadius.circular(8)),
            child: Icon(
              Icons.add,
              color: Colors.blueAccent,
            ),
          ),
        ),

当我返回页面时,有什么方法可以让模态底部工作表回到不聚焦状态?

标签: flutterdart

解决方案


以编程方式关闭 showModalBottomSheet 是通过

Navigator.pop(context);

推荐阅读