flutter 弹框+蒙层

flutter 点击弹框背景添加蒙层

1.showDialog  , 

适用于界面中间弹框,顶部弹框和下部弹框时,上部状态栏和下部状态栏的背景色是蒙层颜色

如下

顶部状态栏的背景色
底部的背景色


使用方式

showDialog(

        barrierDismissible: true,

        context: context,

        builder: (context) {

          return

          AllMessageTyleView(          );

        });



2.OverlayEntry

此种方式上下ok

overlayEntry = OverlayEntry(

                builder: (context) => Container(

                  color: Colors.black.withOpacity(.4),

                  child: Center(

                    child:AllMessageTyleView()

                    //  RaisedButton(

                    //  onPressed: () {

                    //    /// 3. 执行 remove 方法销毁 overlayEntry 实例

                    //    overlayEntry.remove();

                    //  },

                    //  child: Text('点我关闭 OverlayEntry'),

                    // ),

                  ),

                ),

              );

              /// 2. 使用 OverlayState.insert 方法来显示 overlayEntry

              Overlay.of(context).insert(overlayEntry);



3.下部弹框showModalBottomSheet

showModalBottomSheet(

      context: context,

      isScrollControlled: true,

      backgroundColor: Colors.transparent,

      builder: (BuildContext context) {

        return StatefulBuilder(

          builder:(stateContext, state) {

            return GestureDetector(

              child: Container(

                height: MediaQuery.of(context).size.height,

                alignment: Alignment.bottomCenter,

                color: Colors.transparent,

                child: Container(

                  constraints: BoxConstraints(

                    maxHeight: 250,

                    minHeight: 150

                  ),

                  decoration: BoxDecoration(

                    color: Colors.white,

                    borderRadius: BorderRadius.only(

                      topLeft: Radius.circular(10),

                      topRight: Radius.circular(10)

                    )

                  ),

                  padding: EdgeInsets.only(top: 10),

                  child: Column(

                    mainAxisAlignment: MainAxisAlignment.spaceAround,

                    children: <Widget>[

                      Container(

                        alignment: Alignment.center,

                        child: Text(

                          '更新提示',

                          style: TextStyle(

                            fontSize: 18

                          ),

                        ),

                      ),

                      Expanded(

                        child: ListView(

                          // physics: NeverScrollableScrollPhysics(),

                          shrinkWrap: true,

                          children: <Widget>[

                            Padding(

                              padding: EdgeInsets.fromLTRB(20, 20, 20, 0),

                              child: Text("downloadData['newVersionText']"),

                            )

                          ],

                        )

                      ),

                    ],

                  ),

                ),

              ),

              // 关键代码

              onVerticalDragUpdate: (e)=>false,

            );

          }

        );

      }

    );


底部
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容