Я делаю список Flutter, похожий на ленту упоминаний. Корм загружается наполовину! Я не понимаю, где это в коде. Я хочу загрузить его намного выше по странице, а не в самом верху, но я не могу контролировать, куда он идет. Когда я проверяю это, после прокрутки вниз весь канал поднимается до верхней части экрана, но до того, как я прокручиваю, все начинается с середины. Фрагмент кода ниже
@override
void initState() {
super.initState();
getPostsData();
controller.addListener(() {
double value = controller.offset/119;
setState(() {
topContainer = value;
closeTopContainer = controller.offset > 50;
});
});
}
Widget build(BuildContext context) {
final Size size = MediaQuery.of(context).size;
final double categoryHeight = size.height*0.30;
return SafeArea(
child: Scaffold(
backgroundColor: Colors.white,
body: Container(
height: size.height,
child: Column(
children: <Widget>[
Text("Mentions"),
AnimatedOpacity(
duration: const Duration(milliseconds: 200),
opacity: closeTopContainer?0:1,
child: AnimatedContainer(
duration: const Duration(milliseconds: 200),
width: size.width,
alignment: Alignment.topCenter,
height: closeTopContainer?0:categoryHeight,
//child: categoriesScroller
),
),
Expanded(
child: Container(
margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: ListView.builder(
controller: controller,
itemCount: itemsData.length,
physics: BouncingScrollPhysics(),
itemBuilder: (context, index) {
double scale = 1.0;
if (topContainer > 0.5) {
scale = index + 0.5 - topContainer;
if (scale < 0) {
scale = 0;
} else if (scale > 1) {
scale = 1;
}
}
return Opacity(
opacity: scale,
child: Transform(
transform: Matrix4.identity()..scale(scale,scale),
alignment: Alignment.bottomCenter,
child: Align(
heightFactor: 0.7,
alignment: Alignment.topCenter,
child: itemsData[index]),
),
);
})),
),
],
),
),
),
);
}
}
введите описание изображения здесь