微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

随供应商更改列表后,颤振,不会触发与列表相同的列表项的动画

如何解决随供应商更改列表后,颤振,不会触发与列表相同的列表项的动画

我有一个网格视图,该视图从作为提供者的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

"All Hero" Grid View

"Popular" Grid View

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 举报,一经查实,本站将立刻删除。