android - Flutter 列表项随动画改变位置
问题描述
下面的代码有一个从 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世界上,我们可以通过RecyclerView适配器中的setHasStableIds来做到这一点,我想flutter的方法可能会有所不同,但我想有可能达到相同的结果,我想知道如何。
已编辑
我在这里添加了一个 gif,显示了当您使用本机 recyclerview 时项目如何更改位置动画,我正在寻找这种动画位置变化。
解决方案
我自己还没有测试过,但也许 AnimatedListView 可以解决问题。
https://api.flutter.dev/flutter/widgets/AnimatedList-class.html
但正如我自己所说的那样,我还没有测试过。
推荐阅读
- nginx - 错误:horizontalpodautoscalers.autoscaling“nginx-1-hpa”已经存在
- python-3.x - 子类化 rv_continuous 时的溢出错误
- c# - 使用 WebClient UploadFile 线程被中止
- hibernate - Querydsl Projection.bean 找不到设置器
- debugging - VS2017调试错误:评估函数超时,需要中止...
- oracle - 联合投掷错误
- r - 来自维基百科的 R 图:数字被错误地解释为因素
- java - 错误:尝试在空对象引用上调用虚拟方法“android.content.Context.getResources()”
- javascript - Object.entries() 确实为 Maps 返回一个空数组
- mysql - 插入具有最高值的列的列名