如果我点击该列表中的任何电影,我将被引导到一个新的屏幕,我可以看到电影的详细信息.在此屏幕中,有一个按钮可从本地数据库中删除电影.
现在我的问题从这里开始:在我从数据库中删除任何电影并返回“收藏夹”屏幕后,我仍然在ListVIEw中看到该电影.但我已经从数据库中删除了该电影.如果我在AndroID平台上做这个,我会覆盖onStart方法并对数据库进行查询,然后更新ListvIEw.但是只要我知道,Flutter就没有像onStart那样的方法.所以我该怎么做?
class FavoritesScreen extends StatefulWidget { @overrIDe _FavoritesScreenState createState() => _FavoritesScreenState();}class _FavoritesScreenState extends State<FavoritesScreen> { var favoriteMovIEDatabase = FavoriteMovIEDatabase(); List<MovIEOvervIEw> movIEOvervIEwList = List<MovIEOvervIEw>(); @overrIDe voID initState() { super.initState(); favoriteMovIEDatabase .getAllFavoriteMovIEs() .then((List<MovIEOvervIEw> List) { setState(() { movIEOvervIEwList = List; }); }); } @overrIDe Widget build(BuildContext context) { return Scaffold( appbar: Appbar(Title: Text("Favorites")),body: MovIEOvervIEwListVIEw(movIEOvervIEwList,"FAVORITE") ); }}
编辑:
我曾尝试使用WidgetsBindingObserver,但它没有帮助.
@overrIDe voID dIDChangeApplifecycleState(ApplifecycleState state) { super.dIDChangeApplifecycleState(state); if(state == ApplifecycleState.resumed){ favoriteMovIEDatabase .getAllFavoriteMovIEs() .then((List<MovIEOvervIEw> List) { setState(() { movIEOvervIEwList = List; }); }); } }
它甚至没有称这种方法.
解决方法 假设当您使用Navigator推送新路由时发生问题,那么您可以使用RouteAware
mixin与 RouteObserver
结合使用,然后覆盖dIDPopNext方法. 每当路线再次可见时,都会调用dIDPopNext.
final RouteObserver<PageRoute> routeObserver = new RouteObserver<PageRoute>();voID main() { runApp(new MaterialApp( home: new Container(),navigatorObservers: [routeObserver],));}class RouteAwareWidget extends StatefulWidget { State<RouteAwareWidget> createState() => new RouteAwareWidgetState();}// Implement RouteAware in a Widget's state and subscribe it to the RouteObserver.class RouteAwareWidgetState extends State<RouteAwareWidget> with RouteAware { @overrIDe voID dIDChangeDependencIEs() { super.dIDChangeDependencIEs(); routeObserver.subscribe(this,ModalRoute.of(context)); } @overrIDe voID dispose() { routeObserver.unsubscribe(this); super.dispose(); } @overrIDe voID dIDPopNext() { // Todo: query DB again } @overrIDe Widget build(BuildContext context) => new Container();}总结
以上是内存溢出为你收集整理的Android的onStart等效全部内容,希望文章能够帮你解决Android的onStart等效所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)