Флаттер — Сохраняйте прокрутку одномерного экрана с анимированным размером

#flutter #dart #flutter-animation

#трепетать #дротик #флаттер-анимация

Вопрос:

У меня проблема со прокруткой для элемента SingleChildScrollView. Мое представление состоит из следующего: Картинка, Изображение с одним элементом (список элементов 2, 3,4 на картинке), виджет анимированного размера, который содержит либо список, либо ничего. По умолчанию мой виджет AnimatedSize ничего не содержит и не отображается таким образом :

введите описание изображения здесь

И когда он обновляется, чтобы содержать список, прокрутка моего представления Singlechildscroll сдвигается. Как это : введите описание изображения здесь

I would like the scroll to stay at the end like that:

введите описание изображения здесь

Я знаю, что могу вызвать событие для автоматической прокрутки до конца, но это не так гладко. Я думаю, что есть лучшее решение. В надежде найти ответ здесь Вот мой код:

 Column(  children: [  SizedBox(  height: 200,  child: ClipRRect(  borderRadius: BorderRadius.circular(20.0),  child: Image.asset(  imagePath,  width: MediaQuery.of(context).size.width,  ),  ),  ),  Expanded(  child: SingleChildScrollView(  controller: scrollController,  physics: const BouncingScrollPhysics(),  child: Column(  children:[  ...listInterractionShow.map((e) =gt; e.getWidget(context)).toList(),  ]  ),  ),  ),  AnimatedSize(  curve: Curves.fastOutSlowIn,  duration: const Duration(milliseconds: 100),  child:  currentChoix == null? Container()  :Container(  decoration: const BoxDecoration(  borderRadius: BorderRadius.vertical(top: Radius.circular(20)),  color: Colors.white,  ),  child: Column(  children: listChildren()  ),  )  )  ],  ),  

Ответ №1:

Я думаю, что вы можете играть с гибкими и расширенными, придавая им большую гибкость, чем та, которую вы хотите показать больше на экране