Flutter微框架Nylo(十八):NyListView组件

187 阅读1分钟

在本节中,我们将了解 NyListView 小部件。NyListView 用于处理 Flutter 项目中的列表视图。它的工作方式与常规 ListView 小部件相同,但它具有一些额外的功能,使其更易于使用。

用法

@override
Widget build(BuildContext context) {
return NyListView(child: (BuildContext context, dynamic data) {
    return ListTile(
        title: Text(data['title'])
    );
}, data: () async {
    return [
    {"title": "Clean Room"},
    {"title": "Go to the airport"},
    {"title": "Buy new shoes"},
    {"title": "Go shopping"},
    {"title": "Find my keys"}
    ];
});
}

NyListView 组件需要两个参数:

  • child - 这是将为列表中的每个项目显示的组件。
  • data - 这是将显示在列表中的数据。

提示:您可以使用小 NyListView.separated 组件在列表中的每个项目之间添加分隔线。

参数

以下是您在使用 NyPullToRefresh 小部件之前应该了解的一些重要参数。

属性类型描述
childWidget Function(BuildContext context, dynamic data) {}数据可用时将显示的子小组件。
dataFuture Function() data希望列表视图使用的数据列表。
stateNameString? stateName您可以使用 来 stateName 命名状态,稍后您将需要此键来更新状态。

如果您想了解所有可用的参数,请访问此处的此链接

更新状态

您可以通过引用 stateName 参数来更新 NyListView 小组件的状态。

// e.g.
@override
  Widget build(BuildContext context) {
    return NyListView(
        child: (BuildContext context, dynamic data) {
          return ListTile(title: Text(data['title']));
          }, 
        data: () async {
          return  [
            {"title": "Clean Room"}, 
            {"title": "Go to the airport"}, 
            {"title": "Buy new shoes"}, 
            {"title": "Go shopping"},
          ];
        },
      stateName: "my_list_of_todos",
    );
  }


_updateListView() {
    updateState("my_list_of_todos");
}

这将触发 State 重新启动并从 data 参数加载新数据。