Flutter中RecyclerView的替代品是什么?

6 flutter flutter-layout flutter-animation

我已尝试使用此代码尝试在flutter中回收视图的替代方法,但如何在flutter中使用listview小部件进行动画处理

这有效吗?

 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'),
  ),
 ],
);
Run Code Online (Sandbox Code Playgroud)

小智 7

ListView

通常,这应与少量子项一起使用,因为List还将在列表中构造不可见的元素,而大量元素可能会使此效率低下。

ListView.builder()

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

更多信息在这里


MRi*_*n33 6

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

动画列表

  • 该链接已弃用。新的是 https://docs.flutter.io/flutter/widgets/AnimatedList-class.html。明年这可能会被弃用!哈哈 (2认同)

Dur*_*rdu 6

关注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');
        });
      },
    );
  }
Run Code Online (Sandbox Code Playgroud)