23

什么是颤振中回收视图的替代方法我尝试使用此代码但是如何在颤动中使用列表视图小部件进行动画处理

这是有效的吗?

 ListView(
 children: <Widget>[
ListTile(
  leading: Icon(Icons.map),
  title: Text('Map'),
),
ListTile(
  leading: Icon(Icons.photo_album),
  title: Text('Album'),
),
ListTile(
  leading: Icon(Icons.phone),
  title: Text('Phone'),
  ),
 ],
);
4

3 回答 3

23

ListView

通常这应该与少数孩子一起使用,因为 List 也会在列表中构造不可见的元素,并且大量元素可能会导致效率低下。

ListView.builder()

列表项是惰性构建的,这意味着仅构建特定数量的列表项,当用户向前滚动时,较早的列表项将被销毁。

更多信息在这里

于 2018-11-13T01:52:23.220 回答
7

关注flutter -for/android-devs

构建列表的推荐、高效且有效的方法使用 ListView.Builder。当您有一个动态列表或具有大量数据的列表时,此方法非常有用。这本质上相当于 Android 上的 RecyclerView,它会自动为您回收列表元素:

@override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("Sample App"),
        ),
        body: ListView.builder(
            itemCount: widgets.length,
            itemBuilder: (BuildContext context, int position) {
              return getRow(position);
            }));
  }

  Widget getRow(int i) {
    return GestureDetector(
      child: Padding(
          padding: EdgeInsets.all(10.0),
          child: Text("Row $i")),
      onTap: () {
        setState(() {
          widgets.add(getRow(widgets.length + 1));
          print('row $i');
        });
      },
    );
  }
于 2019-08-28T10:32:17.320 回答
6

您还可以将动画列表小部件用于动画。代码示例在以下链接中给出。

动画列表

于 2018-06-20T10:13:00.713 回答