Space Flutter 中一行内的两个对象
Space two objects within a row in Flutter
我知道这里已经发布了类似的问题,但到目前为止我发现的任何问题都没有帮助我解决我的问题。我是 Flutter 的初学者,所以我需要一些帮助。我正在尝试构建一个简单的天气应用程序。我想定位星期几和那一天的 highs/lows ,以便它们尽可能远离并且两个边缘彼此对齐。 Currently, my app looks this (I added the red container to help understand).。星期几和温度互相拥抱,这就是我要解决的问题。
我尝试过使用 mainAxisAlignment.spaceEvenly、spaceBetween 和 spaceAround,但其中 none 根本无法移动文本。我试过使用 Spacer() 但这会使温度消失。
我每天要构建一个单独的 class,因为我要从一个 api 中提取数据。 class 看起来像这样:
class WeatherReport extends StatelessWidget {
final String _day;
final String _tempMax;
final String _tempMin;
WeatherReport(this._day, this._tempMax, this._tempMin);
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.fromLTRB(0, 30, 0, 0),
child: Row(
children: <Widget>[
Text(_day, style: TextStyle(
color: Colors.white,
fontSize: 25,
fontWeight: FontWeight.w300
)
),
Container(
color: Colors.red,
child: Row(children: <Widget>[
Text(_tempMax + " | ", style: TextStyle(
color: Colors.white,
fontSize: 25,
fontWeight: FontWeight.w300
)
),
Opacity(
opacity: 0.5,
child: Text(_tempMin, style: TextStyle(
color: Colors.white,
fontSize: 25,
fontWeight: FontWeight.w300
)
),
),
],),
),
],
),
);
}
}
我在主构建文件中称其为 class。在这里,我创建了一个列来容纳由前一个 class 创建的每一行。该代码如下所示:
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
WeatherReport(days[0], '${(forecast.days[0].main.tempMax).round()}º', '${(forecast.days[1].main.tempMin).round()}º'),
WeatherReport(days[1], '${(forecast.days[8].main.tempMax).round()}º', '${(forecast.days[9].main.tempMin).round()}º'),
WeatherReport(days[2], '${(forecast.days[16].main.tempMax).round()}º', '${(forecast.days[17].main.tempMin).round()}º'),
WeatherReport(days[3], '${(forecast.days[24].main.tempMax).round()}º', '${(forecast.days[25].main.tempMin).round()}º'),
WeatherReport(days[4], '${(forecast.days[32].main.tempMax).round()}º', '${(forecast.days[33].main.tempMin).round()}º'),
],
),
我们将不胜感激任何帮助。我觉得答案很简单,但我想不出解决办法。
您可以使用扩展包装您的文本小部件:
Expanded(
child: Text(
_day,
style: TextStyle(
color: Colors.white,
fontSize: 25,
fontWeight: FontWeight.w300,
),
),
),
这样文字和温度会尽可能地远离彼此。
我知道这里已经发布了类似的问题,但到目前为止我发现的任何问题都没有帮助我解决我的问题。我是 Flutter 的初学者,所以我需要一些帮助。我正在尝试构建一个简单的天气应用程序。我想定位星期几和那一天的 highs/lows ,以便它们尽可能远离并且两个边缘彼此对齐。 Currently, my app looks this (I added the red container to help understand).。星期几和温度互相拥抱,这就是我要解决的问题。
我尝试过使用 mainAxisAlignment.spaceEvenly、spaceBetween 和 spaceAround,但其中 none 根本无法移动文本。我试过使用 Spacer() 但这会使温度消失。
我每天要构建一个单独的 class,因为我要从一个 api 中提取数据。 class 看起来像这样:
class WeatherReport extends StatelessWidget {
final String _day;
final String _tempMax;
final String _tempMin;
WeatherReport(this._day, this._tempMax, this._tempMin);
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.fromLTRB(0, 30, 0, 0),
child: Row(
children: <Widget>[
Text(_day, style: TextStyle(
color: Colors.white,
fontSize: 25,
fontWeight: FontWeight.w300
)
),
Container(
color: Colors.red,
child: Row(children: <Widget>[
Text(_tempMax + " | ", style: TextStyle(
color: Colors.white,
fontSize: 25,
fontWeight: FontWeight.w300
)
),
Opacity(
opacity: 0.5,
child: Text(_tempMin, style: TextStyle(
color: Colors.white,
fontSize: 25,
fontWeight: FontWeight.w300
)
),
),
],),
),
],
),
);
}
}
我在主构建文件中称其为 class。在这里,我创建了一个列来容纳由前一个 class 创建的每一行。该代码如下所示:
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
WeatherReport(days[0], '${(forecast.days[0].main.tempMax).round()}º', '${(forecast.days[1].main.tempMin).round()}º'),
WeatherReport(days[1], '${(forecast.days[8].main.tempMax).round()}º', '${(forecast.days[9].main.tempMin).round()}º'),
WeatherReport(days[2], '${(forecast.days[16].main.tempMax).round()}º', '${(forecast.days[17].main.tempMin).round()}º'),
WeatherReport(days[3], '${(forecast.days[24].main.tempMax).round()}º', '${(forecast.days[25].main.tempMin).round()}º'),
WeatherReport(days[4], '${(forecast.days[32].main.tempMax).round()}º', '${(forecast.days[33].main.tempMin).round()}º'),
],
),
我们将不胜感激任何帮助。我觉得答案很简单,但我想不出解决办法。
您可以使用扩展包装您的文本小部件:
Expanded(
child: Text(
_day,
style: TextStyle(
color: Colors.white,
fontSize: 25,
fontWeight: FontWeight.w300,
),
),
),
这样文字和温度会尽可能地远离彼此。