RenderFlex переполнен на 265 пикселей справа - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь получить данные о погоде из сети и показать только пять индексов API 5days / 3hours на openweathermap. Он отлично работает, когда я впервые запускаю приложение, но затем, когда я нажимаю кнопку «Иконка» и снова вызываю updateUI, он дает мне все данные вместо пяти. Вот мой код:

List<String timeStringData = [];
List<String> hourlyTemp =[];
void updateUI(dynamic weatherData, dynamic hourlyData) {
  setState(() {
    temperature = weatherData['main']['temp'].toInt();
    description = weatherData['weather'][0]['description'];
    cityName = weatherData['name'];
    for (int i = 1; i < 6; i++) {
      timeStringData.add(hourlyData['list'][i]['dt_txt']);
      hourlyTemp.add(hourlyData['list'][i]['main']['temp']);
      parsing();
    }
  });
}

Row parsing() {
  List<HourInfo> hourTexts = [];
  for (int i = 0; i <= timeStringData.length - 1; i++) {
    var parsedDate = DateTime.parse(timeStringData[i]);
    String formatted = formatting(parsedDate);
    String onlyTemp = hourlyTemp[i].toStringAsFixed(0);
    setState(() {
      hourTexts.add(
        HourInfo(
          onlyHour: formatted,
          onlyTemp: onlyTemp,
        ),
      );
    });
  }
  return Row(
    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
    children: hourTexts,
  );
}

метод сборки:

IconButton(
  icon: Icon(
    Icons.near_me,
    color: Colors.white,
    size: 35.0,
  ),
  onPressed: () async {
    var weatherData = await weather.getLocationWeather();
    var hourlyData = await weather.get3HoursWeather();
    updateUI(weatherData, hourlyData);
  },
),

Container(
  width: double.infinity,
  height: 100.0,
  child: parsing(),
),

1 Ответ

0 голосов
/ 27 января 2020

Я думаю, что вы смешиваете подготовку данных с созданием дерева виджетов.

Просто удалите вызов parsing(); из метода updateUI(). parsing(); будет вызываться библиотекой при построении дерева.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...