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,
);
}
);
}
);