【问题标题】:How to receive state in App Bar using bloc如何使用 bloc 在 App Bar 中接收状态
【发布时间】:2019-01-18 13:55:07
【问题描述】:

我在脚手架小部件中有一个列表视图生成器。我需要在 App Bar 中计算列表大小和显示列表大小。我无法使用 bloc 模式在 APP Bar 中获取状态。我可以获取除 App Bar 之外的状态。如何使用 Bloc 模式获取和更改 App Bar 中的状态。

【问题讨论】:

  • 为什么不能在AppBar 中获得状态?只需将您的 Scaffold 包裹在 StreamBuilder 中即可。
  • 我正在使用 bloc builder 来更改状态。我已经用脚手架小部件编写了 bloc builder。
  • 是的,但是您可以移动您的 Scaffold 小部件,使其位于 bloc builder 中。
  • 你能解释一下我该怎么做吗?
  • 如果您更新您的问题以包含一些代码,我会尝试向您展示。

标签: flutter


【解决方案1】:

你应该在你的List 上设置一个监听器;仅供参考...这是StreambuilderListView.builder 内置的功能并执行setState((){ publicInt = list.length})。实例化 publicInt 的公共 int 变量,该变量将在每次 list.length 更改时更新,并将其添加到您的 AppBar 标题。类似于下面的代码...

int publicInt;

 @override
  Widget build (BuildContext ctxt) {
    return new Scaffold(
      appBar: new AppBar(title: new Text("Dynamic Demo # $publicInt"),),
      body:  new ListView.builder
        (
          itemCount: litems.length,
          itemBuilder: (BuildContext ctxt, int index) {
          setState((){ publicInt = list.length});
            } 
        )

      ),
    );
  }
}

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 2021-04-13
    • 1970-01-01
    • 2021-05-10
    • 2019-05-21
    • 2021-04-19
    • 2020-05-06
    • 2022-08-21
    • 2021-03-19
    相关资源
    最近更新 更多