Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何为颤振推送showModalBottomSheet?_Flutter_Dart_Flutter Layout - Fatal编程技术网

Flutter 如何为颤振推送showModalBottomSheet?

Flutter 如何为颤振推送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

如何为颤振推送showModalBottomSheet

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将向您请求一个小部件作为回报