美文网首页
18.ListView.build

18.ListView.build

作者: 凯司机 | 来源:发表于2020-06-10 15:30 被阅读0次

通过构造函数中的children传入所有的子Widget有一个问题:默认会创建出所有的子Widget。

但是对于用户来说,一次性构建出所有的Widget并不会有什么差异,但是对于我们的程序来说会产生性能问题,而且会增加首屏的渲染时间。

我们可以ListView.build来构建子Widget,提供性能。


2.2.1. ListView.build基本使用

ListView.build适用于子Widget比较多的场景,该构造函数将创建子Widget交给了一个抽象的方法,交给ListView进行管理,ListView会在真正需要的时候去创建子Widget,而不是一开始就全部初始化好。

该方法有两个重要参数:

itemBuilder:列表项创建的方法。当列表滚动到对应位置的时候,ListView会自动调用该方法来创建对应的子Widget。类型是IndexedWidgetBuilder,是一个函数类型。

itemCount:表示列表项的数量,如果为空,则表示ListView为无限列表。

我们还是通过一个简单的案例来认识它:

classMyHomeBodyextendsStatelessWidget{

  @override

  Widget build(BuildContext context) {

    return ListView.builder(

      itemCount: 100,

      itemExtent: 80,

      itemBuilder: (BuildContext context, int index) {

        return ListTile(title: Text("标题$index"), subtitle: Text("详情内容$index"));

      }

    );

  }

}

相关文章

  • 18.ListView.build

    通过构造函数中的children传入所有的子Widget有一个问题:默认会创建出所有的子Widget。 但是对于用...

网友评论

      本文标题:18.ListView.build

      本文链接:https://www.haomeiwen.com/subject/yslptktx.html