В чем разница между объявлением дочерних элементов стека во Flutter? - PullRequest
0 голосов
/ 27 июня 2019

Я написал List и [items] в своем коде. При использовании [items] анимация работает правильно, но в случае List она вообще не работает. В чем разница между двумя декларациями?

P.S. Я новичок в трепетании. Надеюсь получить помощь.

class _MyAppState extends State<MyApp> with TickerProviderStateMixin {
  List<Widget> cards = [];
  AnimationController _controller;
  double _point = 2.3;

  Widget _initCard(int index) {
    Animation _animLeft = Tween(begin: _point * index, end: _point * 8 * index)
        .animate(CurvedAnimation(parent: _controller, curve: Curves.linear))
          ..addListener(() {
            setState(() {});
          });

    return Container(
      width: 50.0,
      height: 50.0,
      color: Colors.red
      margin: EdgeInsets.only(
          left: _animLeft.value.toDouble(),
    );
  }

  @override
  void initState() {
    _controller = AnimationController(vsync: this, duration: Duration(seconds: 3));
    for (int i = 0; i < 5; ++i) {
      cards.add(_initCard(i));
    }
    _controller.forward();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Container(
            width: 320,
            height: 520,
            color: Colors.deepOrange,
            child: Stack(
              overflow: Overflow.visible,
              children: cards,
      //         children: <Widget>[
      //           _initCard(0),
      //           _initCard(1),
      // ],
    )));
  }
}

1 Ответ

0 голосов
/ 27 июня 2019

Стек используется для расстановки детей в относительно. Если вы хотите отобразить список некоторых данных, используйте Listview или Listview.Builder ().

или

Если вы хотите использовать только стек, вы можете отображать данные с помощью виджетов Позиция и Центр

...