我想使用模态bottomSheetModal,在其中我想显示带有某些元素的gridView。
我使用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中,我有一个从数据库中获取一些数据的未来:
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
方法。
是否有停止数据刷新或禁用模式的拖动选项的方法?