我想了解 Flutter 如何从模态底页中找到脚手架。
这就是我所知道的:
showModalBottomSheet
打开模态底部表单时,它会将 BottomSheet 添加为 MaterialApp 的子项而不是 Scaffold。这是相同的代码:
void _incrementCounter() async {
await showModalBottomSheet(
useRootNavigator: true,
isScrollControlled: true,
context: context,
barrierColor: Colors.yellow.withAlpha(20),
useSafeArea: true,
builder: (_) => DraggableScrollableSheet(
expand: false,
builder: (__, controller) => ListView(
controller: controller,
children: List<Widget>.generate(
20,
(index) => ListTile(
leading: Icon(chooseIcon(index)),
title: Text(chooseText(index)),
onTap: () async {
ScaffoldMessenger.of(__).showSnackBar(
const SnackBar(
content: Text('Hey, try this'),
),
);
},
),
),
),
),
);
if (mounted) {
setState(() {
_counter++;
});
}
}
如您所见,我使用 __ 作为 DraggableScrollable Sheet 构建器的上下文。
我在这里错过了什么?
这是显示 Bottomsheet 是 Material App 的子项的检查器对话框