Flutter showBottomSheet 代码段



import 'package:flutter/material.dart';

class ShowBottomSheet extends StatefulWidget{
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return _ShowBottomSheetState();
  }
}


class _ShowBottomSheetState extends State<ShowBottomSheet>{

  final _scaffoldkey = GlobalKey<ScaffoldState>();

  VoidCallback _showPersBottomSheetCallBack;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _showPersBottomSheetCallBack = _showBottomSheet;
  }

  void _showBottomSheet(){
     setState(() {
       _showPersBottomSheetCallBack = null;
     });

     _scaffoldkey.currentState.showBottomSheet((context){
       return new Container(
         height: 300.0,
         color: Colors.greenAccent,
         child: new Center(
           child: new Text("Hi BottomSheet"),
         ),
       );
     })
     .closed
     .whenComplete((){
       if(mounted){
         setState(() {
           _showPersBottomSheetCallBack = _showBottomSheet;
         });
         _scaffoldkey.currentState.showSnackBar(new SnackBar(content: new Text("whenComplete")));
       }
     });
  }

  void _showModalSheet(){
    showModalBottomSheet(
        context: context,
        builder: (builder) {
          return new Container(
            color: Colors.greenAccent,
            child: new Center(
              child: new Text("Hi ModalSheet"),
            ),
          );
        });
  }

  @override
  Widget build(BuildContext context) {

    return new Scaffold(
      key: _scaffoldkey,
      appBar: new AppBar(title: new Text("showBottomSheet"),),
      body: new Column(
        children: <Widget>[
          new RaisedButton(
            onPressed: _showBottomSheet,
            child: new Text("showBottomSheet"),
          ),
          new RaisedButton(
            onPressed: _showPersBottomSheetCallBack,
            child: new Text("Persistent"),
          ),
          new RaisedButton(
            onPressed: _showModalSheet,
            child: new Text("Model"),)
        ],
      ),
    );
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容