android - 为每个实例执行 initstate

标签 android dart flutter

在我的应用程序中,我有一个抽屉导航,正文根据抽屉中按下的磁贴进行更新。每个类的主体都是相同的,它是一个有状态的小部件并返回一个 ListView 。对于此类的每个实例(以及每个图 block ),我需要调用 initState 方法。我注意到它只在第一个图 block 的第一个实例上被调用,然后它只调用构建方法。如何为每个实例第一次运行一段代码?

综合:应用程序中有一个抽屉,里面有很多图 block ,每个图 block 都与一个类的实例相关联,该类是应用程序的主体。但是 initState 仅在第一个实例中被调用。

这是一个例子:

class FirstPage extends StatefulWidget {
  @override
  _FirstPage createState() => new _FirstPage();
}

class _FirstPage extends State<FirstPage> {
  @override
  void initState() {
    super.initState();
    print("debug");
  }
  @override
  Widget build(BuildContext context) {
    print('hi');
    return ListView(children: <Widget>[Text('text')],
    );
  }
}

如果我第一次实例化这个类,它会打印:debug and hi。我第二次实例化它时只打印:hi

最佳答案

你不能。 initState 的重点是在状态初始化时调用一次。

您可能想查看其他生命周期。比如

关于android - 为每个实例执行 initstate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52766994/

相关文章:

android - Mockito 不适用于 androidTest

android - 如何从 android shrinkResources 中排除资源?

dart - 在 CustomScrollView 中使用 StreamBuilder 和 SliverLists

android - 在 Eclipse 中安装 Android 应用程序而不运行它

unit-testing - 如何将unittest.dart包含在我的项目中?

http - Flutter Dart - 如何使用 HttpClient() 发送 Post 请求

android - Flutter 中使用 Stack 对齐容器

xcode - pubspec.yaml 中的第 3 方 Dart 包导致在 Xcode 中找不到致命文件错误(但适用于 Android)

flutter - 如何通过 Sentry 发送设备信息

android - (重复的 zip 条目 [coolLib.jar :{pkg}/BuildConfig. 类]))