我在 Flutter 中创建了一个 MainScreen 类。该类的主要目的是从用户所在位置获取城市名称并获取该城市 5 天的天气预报,然后将这些数据显示在卡片中。但是,有一个问题。ListView 没有正确居中。我希望这些卡片水平居中。
Future<void> asenkronFunctions() async {
//some code................
if (cityName != null) {
fiveDaysMap = (await service.fiveDaysWeatherInfo(cityName, null, null))!;
if (fiveDaysMap['list'] != null) {
List<dynamic> havaTahminleri = fiveDaysMap['list'];
int kayitAdim = 8; // Her gün için 8 kayıt
for (int i = 0; i < havaTahminleri.length; i += kayitAdim) {
String temp = havaTahminleri[i]['main']['temp'].toString();
String status = havaTahminleri[i]['weather'][0]['main'];
String icon = havaTahminleri[i]['weather'][0]['icon'];
String tDate = DateTime.fromMillisecondsSinceEpoch(havaTahminleri[i]['dt'] * 1000).toString();
Weather weatherItem = Weather(
cityName: cityName.toString(),
temp: temp,
status: status,
icon: icon,
wDate: tDate);
weatherList.add(weatherItem);
var singleCard = SizedBox(
width: 50,
height: 100, // Örnek olarak 100 değerini koydum. İstediğiniz değere göre ayarlayabilirsiniz.
child: MyCardWidget(icon: icon, temp: temp, status: status, wdate: tDate,),
);;
cards.add(singleCard);
print(weatherList);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: FutureBuilder(
future: _asenkronFunctionFuture,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
} else if (snapshot.hasError) {
return Center(child: Text('Bir hata oluştu!'));
} else {
return Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage('lib/assets/images/home.jpg'),
fit: BoxFit.cover,
),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(cityName + " " + temp),
Center(
child: SizedBox(
height: 120,
width: (MediaQuery.of(context).size.width) - 40,
child: ListView(
children: cards,
scrollDirection: Axis.horizontal,
还有这个卡片类
child: Column(
children: [
Image.network(
"https://openweathermap.org/img/wn/${widget.icon}@2x.png"),
Text(widget.temp),
],
),
);
在列中添加以下代码。
crossAxisAlignment:CrossAxisAlignment.center,