我使用 Modal_bottom_sheet 2.0.0 制作了一个模态。我有一些代码:
GestureDetector(
child: Icon(Icons.arrow_upward),
onTap: () => {
CupertinoScaffold.showCupertinoModalBottomSheet(
expand: true,
context: context,
backgroundColor: Colors.transparent,
builder: (context) => Stack(
children: <Widget>[
MyWidget(),
],
),
),
}),
上面的代码是渲染一个 Icon(Icons.arrow_upward)
。当用户 onTap
在此图标上时,我的 Cupertino BottomSheet 将调用。
但现在我希望 Modal 在没有 onTap
的情况下自动调用。
我在下面尝试了这段代码,但它不起作用
void initState() {
super.initState();
setState(() {
CupertinoScaffold.showCupertinoModalBottomSheet(
expand: true,
context: context,
backgroundColor: Colors.transparent,
builder: (context) => Stack(
children: <Widget>[
MyWidget(),
],
),
);
});
}
如何在图标上没有 onTap()
的情况下显示 Cupertino BottomSheet?
答案 0 :(得分:0)
您不需要将 cupertinoShowMode 方法包装在 SetState
函数中。相反,您可以创建一个显示底部工作表的函数,并从 initState
方法调用此函数。
displaySheet
函数内调用 initState
方法。void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
displaySheet();
});
}
void displaySheet(){
CupertinoScaffold.showCupertinoModalBottomSheet(
expand: true,
context: context,
backgroundColor: Colors.transparent,
builder: (context) => Stack(
children: <Widget>[
MyWidget(),
],
),
)
}