Flutter 如何为颤振推送showModalBottomSheet?
如何为颤振推送showModalBottomSheetFlutter 如何为颤振推送showModalBottomSheet?,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,如何为颤振推送showModalBottomSheet class SetRepeatButton extends StatefulWidget { @override _SetRepeatButtonState createState() => _SetRepeatButtonState(); } class _SetRepeatButtonState extends State<SetRepeatButton> { void _repeatMenu(Buil
class SetRepeatButton extends StatefulWidget {
@override
_SetRepeatButtonState createState() => _SetRepeatButtonState();
}
class _SetRepeatButtonState extends State<SetRepeatButton> {
void _repeatMenu(BuildContext context) {
showModalBottomSheet(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20.0),
),
backgroundColor: Colors.white,
context: context,
builder: (builder) => Padding(
padding: const EdgeInsets.all(20.0),
child: Container(
height: MediaQuery.of(context).copyWith().size.height / 3,
child: Column(
children: <Widget>[
],
),
),
)
);
}
@override
Widget build(BuildContext context) {
return Builder(
builder: (builder) => FlatButton(
color: Colors.white,
textColor: Colors.grey,
disabledColor: Colors.grey,
disabledTextColor: Colors.black,
onPressed: () async {
final result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => _repeatMenu()),
);
},
child: Row(
),
),
);
}
}
class SetRepeatButton扩展StatefulWidget{
@凌驾
_SetRepeatButtonState createState()=>\u SetRepeatButtonState();
}
类_SetRepeatButtonState扩展状态{
void\u重复菜单(BuildContext上下文){
showModalBottomSheet(
形状:圆形矩形边框(
边界半径:边界半径。圆形(20.0),
),
背景颜色:Colors.white,
上下文:上下文,
生成器:(生成器)=>填充(
填充:常数边集全部(20.0),
子:容器(
高度:MediaQuery.of(context.copyWith().size.height/3,
子:列(
儿童:[
],
),
),
)
);
}
@凌驾
小部件构建(构建上下文){
返回生成器(
生成器:(生成器)=>FlatButton(
颜色:颜色,白色,
textColor:Colors.grey,
禁用颜色:颜色。灰色,
disabledTextColor:Colors.black,
onPressed:()异步{
最终结果=等待Navigator.push(
上下文
MaterialPage路由(生成器:(上下文)=>\u repeatMenu()),
);
},
孩子:排(
),
),
);
}
}
您想要实现什么?
如果只是为了显示底部,只需在按下时调用函数。
但是,如果您想要捕获从底部工作表传递到主上下文的变量,则会有一点不同
你可以这样试着展示底片
进口“包装:颤振/材料.省道”
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: SetRepeatButton(),
);
}
}
class SetRepeatButton extends StatefulWidget {
@override
_SetRepeatButtonState createState() => _SetRepeatButtonState();
}
class _SetRepeatButtonState extends State<SetRepeatButton> {
void _repeatMenu(BuildContext context) {
showModalBottomSheet(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20.0),
),
backgroundColor: Colors.white,
context: context,
builder: (builder) => Padding(
padding: const EdgeInsets.all(20.0),
child: Container(
height: MediaQuery.of(context).copyWith().size.height / 3,
child: Column(
children: <Widget>[
Text('Text'),
],
),
),
));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Text'),
),
body: Center(
child: RaisedButton(
color: Colors.white,
textColor: Colors.grey,
disabledColor: Colors.grey,
disabledTextColor: Colors.black,
onPressed: () async {
_repeatMenu(context);
},
child: Text('Text'),
),
),
);
}
}
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主页:SetRepeatButton(),
);
}
}
类SetRepeatButton扩展StatefulWidget{
@凌驾
_SetRepeatButtonState createState()=>\u SetRepeatButtonState();
}
类_SetRepeatButtonState扩展状态{
void\u重复菜单(BuildContext上下文){
showModalBottomSheet(
形状:圆形矩形边框(
边界半径:边界半径。圆形(20.0),
),
背景颜色:Colors.white,
上下文:上下文,
生成器:(生成器)=>填充(
填充:常数边集全部(20.0),
子:容器(
高度:MediaQuery.of(context.copyWith().size.height/3,
子:列(
儿童:[
文本(“文本”),
],
),
),
));
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“文本”),
),
正文:中(
孩子:升起按钮(
颜色:颜色,白色,
textColor:Colors.grey,
禁用颜色:颜色。灰色,
disabledTextColor:Colors.black,
onPressed:()异步{
_重复菜单(上下文);
},
子项:Text(“Text”),
),
),
);
}
}
showModalBottomSheet是一个函数,我认为您不应该推它。此外,MaterialPageRoute.builder将向您请求一个小部件作为回报