Используйте Center
и задайте ширину и высоту double.infinity
, а затем задайте поле для ваших потребностей. Используйте Expanded
для list-view
, чтобы задать максимальную высоту.
При этом центр будет принимать всю высоту и ширину, заданную вашим контейнером. Тогда вам не нужно беспокоиться о переполнении пикселей.
Widget getAllSelectedShipments() {
return Center(
child: Container(
height: double.infinity,
width: double.infinity,
margin: EdgeInsets.fromLTRB(20, 50, 20, 50),
child: Scaffold(
body: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Expanded(
child: ListView.separated(
shrinkWrap: true,
itemCount: 10,
itemBuilder: (BuildContext context, int index) {
return ListTile(
leading: Icon(Icons.location_on),
title: Text("title $index"),
subtitle: Text("subtitle $index"),
onTap: () async {},
);
},
separatorBuilder: (context, index) {
return Divider();
},
),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Icon(Icons.cancel),
Icon(Icons.check),
],
)
],
))),
));
}
Не используйте содержимое в AlertDialog
, вместо этого используйте Scaffold
, чтобы настроить изображение.
showDialog(
context: context,
builder: (BuildContext context) {
return getAllSelectedShipments();
},
);