如何解决随供应商更改列表后,颤振,不会触发与列表相同的列表项的动画
我有一个网格视图,该视图从作为提供者的HerosList模型提供,并且我有两个复选框,其名称为“ All Hero”为“ Popular”。此外,gridview中的所有项目都具有带有Flutter_staggered_animations包的动画。当我更改复选框时,我使用context.read()。toggleHeroesType(),因此英雄列表类型发生了变化,我得到了英雄列表。
当出现gridview的屏幕时,触发了动画,这是正常现象,但是当我将复选框更改为“ Popular”时,列表将更改,并且某些项目仍然存在并且其动画不会触发。从那里开始,当我选择“所有英雄”复选框时,所有英雄都会出现在屏幕上,但是不会触发网格视图动画中已经相同的项目的动画。
我想总是在更改复选框值时触发gridview动画。
Github存储库在其中:https://github.com/emreerkmen/dota_2_hero_app
When screen coming up "All Hero" Grid View Animation
When go to from "Popular" to "All Hero" Grid View Animation
HerosList;
class HeroesGridView extends StatelessWidget {
final int pos = 0;
@override
Widget build(BuildContext context) {
return Expanded(
child: GridView.count(
primary: false,padding: const EdgeInsets.all(20),crossAxisspacing: 10,mainAxisspacing: 10,crossAxisCount: 2,childAspectRatio: 0.82,// itemWidth / itemHeight = 0.82
children: <Widget>[
for (var hero in context.watch<HerosList>().heros)
AnimationConfiguration.staggeredGrid(
position: pos + 1,duration: const Duration(milliseconds: 875),columnCount: 2,child: FlipAnimation(
child: SlideAnimation(
child: DiagonalHeroStack(
hero: hero,),],);
}
}
HeroesGridView;
child: Padding(
padding: const EdgeInsets.fromLTRB(30.0,20.0,20.0),child: Row(
children: <Widget>[
Padding(
padding: const EdgeInsets.only(right: 13.0),child: Text(
'All Hero',style: Theme.of(context).textTheme.bodyText1,special_version.Radio(
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,value: HeroList.allHero,groupValue: _listType,onChanged: (HeroList value) {
context.read<HerosList>().toggleHeroesType();
setState(() {
_listType = value;
});
},activeColor: Colors.red[800],Padding(
padding:
const EdgeInsets.symmetric(horizontal: 12.0,vertical: 10.0),child: Container(
decoration: Boxdecoration(
color: Theme.of(context).accentColor,borderRadius: BorderRadius.all(Radius.circular(50.0)),child: Padding(
padding: const EdgeInsets.fromLTRB(30.0,child: Text(
'Popular',value: HeroList.popular,focusColor: Colors.yellow,hoverColor: Colors.yellow,
“所有英雄”和“受欢迎”复选框代码;
next()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。