【问题标题】:What is the alternative to RecyclerView in Flutter?Flutter 中 RecyclerView 的替代方案是什么?
【发布时间】:2018-11-29 10:17:27
【问题描述】:

在颤振中我尝试使用此代码的回收视图的替代方法是什么 但是如何在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'),
  ),
 ],
);

【问题讨论】:

  • RecyclerView 本质上是 ListView 的增强版。我假设 Flutter 中的 ListView 与 RecyclerView 不同,而是常规的 ListView

标签: flutter flutter-layout flutter-animation


【解决方案1】:

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

AnimatedList

【讨论】:

【解决方案2】:

ListView:

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

ListView.builder():

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

更多信息是here

【讨论】:

    【解决方案3】:

    关注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');
            });
          },
        );
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多