我想要使用一个底部弹出模态框,其中我想展示一个带有一些元素的网格视图。
我使用 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
方法中不可用。有没有办法停止数据刷新或禁用模态框的拖动选项?