禁用底部模态框的拖动功能。

3

我想要使用一个底部弹出模态框,其中我想展示一个带有一些元素的网格视图。

我使用 showModalBottomSheet 方法将模态框呈现在视图中。

showModalBottomSheet(
    context: context,
    isScrollControlled: true,
    builder: (BuildContext context) {
        return Container(
            width: MediaQuery.of(context).size.width,
            height: MediaQuery.of(context).size.height / 2,
            color: Colors.grey[300],
            child: CategoryModal(),
        );
    },
);

在CategoryModal中,我有一个从数据库中获取数据的future:
CategoryModal extends StatelessWidget {
Widget build(BuildContext context) {
    return Container(
      child: Column(
        children: <Widget>[
         ...
          Expanded(
            child: FutureBuilder<List<Category>>(
                future: CategoryRepository.getAll(),
                builder: (BuildContext context, AsyncSnapshot<List<Category>> snapshot) {
                  if (snapshot.connectionState == ConnectionState.done) {
                    if (snapshot.hasError) {
                      return Text(
                        snapshot.error.toString(),
                      );
                    }

                    return getCategoriesGrid(snapshot.data);
                  }

                  return Text("Loading");
                }),
          ),
        ],
      ),
    );
  }
}

我遇到的问题是,模态框有可拖动关闭选项,如果我缓慢向下拖动它,数据会每次都刷新。我发现 BottomSheet 类有一个参数 enableDrag 可以禁用拖动,但在 showModalBottomSheet 方法中不可用。
有没有办法停止数据刷新或禁用模态框的拖动选项?
1个回答

0

这是您问题的解决方案,

   showModalBottomSheet(
    context: context,
    enableDrag: false,
    isScrollControlled: true,

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接