В настоящее время у меня есть стек с фоном для моего AppBar
и содержимым моей страницы. Я отображаю Container
в центре страницы, расположенной с виджетом Positioned
, который содержит grid/listview
.
@override
Widget build(BuildContext context) {
return Scaffold(
extendBodyBehindAppBar: true,
appBar: VehicleScreenAppBar(
title: title,
context: context,
),
body: LayoutBuilder(
builder: (contxt, vehicleListConstraints) {
return Stack(
overflow: Overflow.visible,
children: <Widget>[
AppBarBackDrop(constraints: vehicleListConstraints),
Positioned(
top: vehicleListConstraints.maxHeight * .15,
left: (vehicleListConstraints.maxWidth - vehicleListConstraints.maxWidth * .9) / 2,
child: Container(
color: Colors.red,
height: vehicleListConstraints.maxHeight * .6,
width: vehicleListConstraints.maxWidth * .9,
child: ListView.builder(
itemCount: 20,
itemBuilder: (context, i) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
height: 50,
color: Colors.blue,
child: Text('text'),
),
);
},
),
),
)
],
);
},
),
);
}
Проблема, с которой я сталкиваюсь, заключается в том, что grid/listview
не прокручивается, когда у меня есть Positioned
виджет, И я явно назвал любой, НО НЕ ВСЕ его конструкторы, то есть top:
, bottom:
, left:
, right:
. (Я лениво строю grid/listview
лениво через .builder
).
У меня есть обходной путь / хак, где я удаляю Positioned
и заменяю его на PageView
. Тогда PageView
имеет children: <Widget> [ Container() ]
, который я затем позиционирую через конструкторы полей 'top:
и left:
.
Пока это будет работать, но не то, что я хочу реализовать для производства. Как я могу заставить grid/listview
прокручивать виджет Positioned
БЕЗ именования всех его конструкторов?