如何在ListView中正确居中项目

问题描述 投票:0回答:1

我在 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),
   
        ],
      ),
    );
          
flutter listview
1个回答
0
投票

在列中添加以下代码。

crossAxisAlignment:CrossAxisAlignment.center,

© www.soinside.com 2019 - 2024. All rights reserved.