flutter setState не работает после отсоединения жизненного цикла - PullRequest
0 голосов
/ 06 августа 2020

мой проект flutter использует добавление к существующему приложению

Я просто хочу избавиться от виджета, когда активность уничтожает

образец в моем statefulWidget, как это

  final GlobalKey<OverlayState> _overlayKey = GlobalKey<OverlayState>();
  OverlayEntry current;

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    super.didChangeAppLifecycleState(state);
    if (state == AppLifecycleState.detached) {
      pop();
    }
  }

 @override
  Widget build(BuildContext context) {
    return Overlay(
      key: _overlayKey,
      initialEntries: const <OverlayEntry>[],
    );
  }

  void pop() {
    current.remove();
    setState(() {});
  }

  void push(OverlayEntry app) {
    assert(app != null);
    
    setState(() {
      current = app;
      overlayKey.currentState.insert(app);
      _overlayKey.currentState.setState(() {

      });
    });
  }

кажется, что statefulWidget в OverlayEntry не вызывает метод dispose после события жизненного цикла отсоединения

это просто полезно, когда активность onResume, кто-нибудь мне поможет?

...