android - Flutter 列表项随动画改变位置

标签 android flutter android-recyclerview flutter-animation

下面的代码有一个从 1 到 100 的列表,顶部有三个按钮来更改列表的顺序(增加、减少或随机播放)。

import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

class SamplePage extends StatefulWidget {
  SamplePage({Key key}) : super(key: key);

  @override
  _SamplePageState createState() => _SamplePageState();
}

class _SamplePageState extends State<SamplePage> {
  _SamplePageState();

  final _list = new List<int>.generate(100, (i) => i + 1);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          TextButton(
            onPressed: () => setState(() {
              _list.sort((a, b) => a.compareTo(b));
            }),
            child: Text(
              "Sort increasing",
            ),
          ),
          TextButton(
            onPressed: () => setState(() {
              _list.sort((a, b) => b.compareTo(a));
            }),
            child: Text(
              "Sort decreasing",
            ),
          ),
          TextButton(
            onPressed: () => setState(() {
              _list.shuffle();
            }),
            child: Text(
              "Shuffle",
            ),
          ),
          Expanded(
            child: ListView.builder(
              itemCount: _list.length,
              itemBuilder: (context, index) => Text(
                '${_list[index]}',
                textAlign: TextAlign.center,
                style: TextStyle(
                  fontSize: 16.0,
                ),
              ),
            ),
          ),
        ],
      ),
    );
  }
}
一切正常,但由于我是新来的,我想知道是否可以使列表中的项目随动画而变化。
在android世界上,​​我们可以通过setHasStableIds在 RecyclerView 适配器中,我想关于 flutter 的方法可能会有所不同,但我想有可能达到相同的结果,我想知道如何。

已编辑
我在这里添加了一个 gif,显示了当您使用 native recyclerview 时项目如何更改位置动画,我正在寻找这种动画位置变化。
animation sample

最佳答案

我自己还没有测试过,但也许 AnimatedListView 可以解决问题。
https://api.flutter.dev/flutter/widgets/AnimatedList-class.html
但正如我自己所说的那样,我还没有测试过。

关于android - Flutter 列表项随动画改变位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66628120/

相关文章:

android - 可以删除 recyclerview 中以前的项目吗?

java - 加载完整图像 Recyclerview Cardview

android-studio - 更改已托管的使用 java 构建的 android 应用程序以进行 flutter 和更新

flutter - 如何在 flutter 的抽屉中添加分隔符和字幕

android - 如何从首选项屏幕打开 AlertDialog?

java - 接收音频文件的插件

flutter - flutter 更改选项卡中显示的内容

android - 使用另一个监听器获取 RecyclerView 项目位置

Android studio 布局预览没有获取我当前的主题

android - 在 android 项目中使用 libcryto.so 和 libssl.so?