【发布时间】:2018-11-05 11:12:27
【问题描述】:
【问题讨论】:
【问题讨论】:
这不是小事。以下是所需的组件:
首先,您必须open a transparent full screen dialog。或者你可以直接创建一个Overlay,虽然我不推荐它。
要正确定位叠加层中的小部件,您可以使用CompositedTransformTarget 和CompositedTransformFollower
https://docs.flutter.io/flutter/widgets/CompositedTransformTarget-class.html
【讨论】:
您可以使用 Material 小部件的 Colors.black.withOpacity() 属性将其显示为对话框,并将其放在 GestureDetector 内,因此点击屏幕上的任何位置都会弹出:
static Future<Null> guideDialog(BuildContext context) async {
return showDialog<Null>(
context: context,
builder: (BuildContext context) {
return new GestureDetector(
onTap: () {
Navigator.of(context).pop();
},
child: Material(
color: Colors.black.withOpacity(0.5),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Center(
child: Text(
"(Tap anywhere to dismiss)",
style: TextStyle(color: Colors.white),
),
),
//your other widgets to guide here
],
),
),
);
},
);
}
【讨论】:
这不允许简单的答案。
您可以使用 Marina Kuznetsova 的 Highlighter Coach Mark plugin。
【讨论】: