代码之家  ›  专栏  ›  技术社区  ›  My Car

我应该使用哪一个,ListView.builder还是Column?

  •  1
  • My Car  · 技术社区  · 3 年前

    我们可以使用 ListView.builder 用于列表。然而,我找到了另一种方法 Column .

    以下是两个示例代码:

    ListView.builder

    List list = ["A", "B", "C"];
    
    …
    
    ListView.builder(
      itemCount: list.length,
      itemBuilder: (context, index) => Text(list[index]),
    ),
    

    柱

    List list = ["A", "B", "C"];
    
    …
    
    Column(children: list.map((element) => Text(element)).toList())
    

    所以,我的问题是,我应该使用哪种代码?

    如果您需要更多信息,请随时留言。

    2 回复  |  直到 3 年前
        1
  •  3
  •   My Car    3 年前

    ListView.builder 当您有大量可以动态更改的项时非常有用,因为它只构建 children 当前可见的。它还允许您轻松地滚动项目列表。

    Column 另一方面,是一个布局小部件,用于排列 儿童 垂直地当你有少量的 儿童 的高度 儿童 已知。

    以下是一些指导原则,可帮助您做出决定:

    • 如果您有大量可以动态更改的项目,并且 如果要允许用户滚动浏览它们,请使用 ListView.builder .
    • 如果您有少量想要的项目 垂直堆叠和的高度 儿童 已知,使用 柱 .
    • 如果要生成具有固定数量的项的列表 儿童 如果要将它们垂直堆叠,可以使用 柱 具有 ListView 小时候。也可以同时使用 ListView.builder 和 柱 一起,取决于要求。

    最好同时尝试这两种方法,并决定哪一种最适合您的特定布局和用例。

        2
  •  0
  •   My Car    3 年前

    根据需要使用。

    简短回答:

    使用 ListView.builder 当你有一长串清单时。这个 ListView.builder 构造函数在项目滚动到屏幕上时创建这些项目。 以及 ListView 它需要跨轴收缩包装行为。意思是,子宽度等于屏幕大小的宽度。

    您可以阅读此文档: https://docs.flutter.dev/cookbook/lists/long-lists


    当然他们是不同的。 Column 不支持滚动功能。然后你需要用 SingleChildScrollView 但也有一些利弊。

    此外,我在这里推荐我的文章,我在其中解释了更多关于它的信息: https://medium.com/easyread/my-october-flutter-notes-2-6e0c78cf2e56