Flutter 一个List绑定AnimatedList列表,并且删除List的数据就可以触发两个AnimatedList的删除动画,显示完整代码即可。
import 'package:flutter/material.dart';
class AnimatedListDemo extends StatefulWidget { @override _AnimatedListDemoState createState() => _AnimatedListDemoState(); }
class _AnimatedListDemoState extends State
void _addItem() { setState(() { int index = _data.length; _data.insert(index, "Item ${index + 1}"); _listKey.currentState.insertItem(index); }); }
void _removeItem(int index) {
setState(() {
_listKey.currentState.removeItem(
index,
(BuildContext context, Animation
Widget _buildItem(String item, Animation animation) { return SizeTransition( sizeFactor: animation, child: ListTile( title: Text(item), trailing: IconButton( icon: Icon(Icons.delete), onPressed: () => _removeItem(_data.indexOf(item)), ), ), ); }
@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Animated List Demo"), ), body: AnimatedList( key: _listKey, initialItemCount: _data.length, itemBuilder: (BuildContext context, int index, Animation animation) { return _buildItem(_data[index], animation); }, ), floatingActionButton: FloatingActionButton( onPressed: _addItem, child: Icon(Icons.add), ), ); } }
原文地址: https://www.cveoy.top/t/topic/vmD 著作权归作者所有。请勿转载和采集!