小编Huy*_*àng的帖子

在Flutter中添加OverlayEntry

我正在尝试将容器插入叠加层,但是此代码出现错误。

class _MyHomePageState extends State<MyHomePage> {
  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    final entry = OverlayEntry(builder: (BuildContext overlayContext) {
      return Container(
        height: 50.0,
        width: 50.0,
        color: Colors.blue,
      );
    });
    _addOverlay(entry);
  }

  void _addOverlay(OverlayEntry entry) async {
    Overlay.of(context).insert(entry);
  }

  @override
  Widget build(BuildContext context) {
   return Scaffold(
      appBar: AppBar(
        title: Text('Flutter'),
      ),
      body: Center(),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

这是错误

在构建期间调用setState()或markNeedsBuild()。不能将此Overlay小部件标记为需要构建,因为框架已在构建小部件的过程中。仅当其某个祖先当前正在构建窗口小部件时,才可以将其标记为需要在构建阶段中构建。允许使用此异常是因为该框架在子代之前构建父窗口小部件,这意味着将始终构建脏后代。否则,框架可能在此构建阶段无法访问此小部件。

先感谢您。

flutter

3
推荐指数
1
解决办法
1391
查看次数

标签 统计

flutter ×1