【发布时间】:2019-09-30 09:14:53
【问题描述】:
我正在尝试做一些应该非常简单但看不到它是如何完成的事情。
我需要将大文本居中对齐,按钮向右对齐,如下图所示:
使用下面的代码,小部件左右对齐:
Container(
width: 300,
height: 200,
decoration: BoxDecoration(
border: Border.all(color: Colour.darkBlue, width: 2),
borderRadius: BorderRadius.all(Radius.elliptical(100, 60)),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Centred', style: TextStyle(fontSize: 32)),
Text('24.6 %', style: TextStyle(fontSize: 48)),
],
),
Container(
margin: EdgeInsets.only(left: 10),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('BtnA', style: TextStyle(fontSize: 18)),
Text('BtnB', style: TextStyle(fontSize: 18)),
Text('BtnC', style: TextStyle(fontSize: 18)),
],
),
),
],
),
),
我尝试了以下方法:
Container(
width: 300,
height: 200,
decoration: BoxDecoration(
border: Border.all(color: Colour.darkBlue, width: 2),
borderRadius: BorderRadius.all(Radius.elliptical(100, 60)),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(child: Container()),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Centred', style: TextStyle(fontSize: 32)),
Text('24.6 %', style: TextStyle(fontSize: 48)),
],
),
),
Expanded(
child: Container(
margin: EdgeInsets.only(left: 10),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('BtnA', style: TextStyle(fontSize: 18)),
Text('BtnB', style: TextStyle(fontSize: 18)),
Text('BtnC', style: TextStyle(fontSize: 18)),
],
),
),
),
],
),
),
但结果是这样的:
不知道如何或是否可以在不手动设置左侧容器的宽度的情况下完成,这显然不是理想的方法。 Flutter 似乎急需
float:right...
【问题讨论】:
-
你试过在左侧(空)和右侧使用
SizedBox吗?都设置width和扩大中间Column,或者尝试将flex因子设置为official's youtube tutorial -
@Tokenyet 这不是和我已经尝试过的一样吗?第二段代码。
-
@Tokenyet 主要问题是如何将大文本实际居中,使其真正居中。似乎是颤振挣扎的东西。它太依赖于它周围所有其他元素的位置,所以这里只有一个元素在右边,它不知道如何居中。