【问题标题】:Getting parent object info from Flutter app从 Flutter 应用获取父对象信息
【发布时间】:2019-01-02 12:21:13
【问题描述】:

我正在使用 Flutter 创建移动应用程序。 此应用程序有两种形式(屏幕)。 例如:

class MainScreen  extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AdvertAppBar(context),
      body: Container(…),

      ),
    );
  }
}

和

class ListScreen  extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AdvertAppBar(context),
      body: Container(…),

      ),
    );
  }
}

如您所见,我正在使用从外部类 (AdvertAppBar) 实例化的共享 appBar。 有什么方法可以从 appBar 类中知道父对象的类是什么(MainScreen 或 ListScreen)?

【问题讨论】:

  • 您可以使用inheritedWidgetOfExactType 方法执行此操作,但如果您只是将数据传递到您的AdvertAppBar 类中可能会更好。你到底想达到什么目的?
  • 你有没有 context.widget.runtimeType
  • @JordanDavies 从 MainScreen 我想调用 ListScreen (Navigator.push(context, MaterialPageRoute(builder: (context) => ListScreen()),); ),但从 ListScreen 我只想刷新 ListScreen 的内容。是的,我可以将一些参数(比如当前表单名称)传递给 AdvertAppBar 构造函数,但我认为有更合适的方法吗?
  • 从我从你的问题中了解到的是,你试图只加载你的 ListView 小部件的内容而不重新加载你的 appBar 对吗?

标签: dart flutter


【解决方案1】:

Navigator 2.0 应该能够满足这个用例。我建议在 Navigator 构造函数中使用 pages 参数。这应该有助于在选项卡中保留Page 对象的列表,并能够根据需要更新屏幕。这个blog post 有一个完整的示例供您试用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2017-05-10
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    相关资源
    最近更新 更多