Flutter文本位置调整求助:如何将文本设置为指定布局位置
Flutter文本区域位置调整问题
当前开发Flutter界面时,创建文本区域后无法将文本调整到预期位置:
当前文本显示效果:
预期文本显示位置:
我的实现代码:
body: Container( padding: EdgeInsets.only(left: 25, bottom: 15), height: 80, decoration: BoxDecoration( color: Color.fromARGB(255, 73, 158, 138), borderRadius: BorderRadius.only( bottomLeft: Radius.circular(36), bottomRight: Radius.circular(36), ) ), child: Column( children: <Widget>[ Text( "Olá, usuário", style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold, fontSize: 35, ), ), Text( "Olá, usuário", style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold, fontSize: 35, ), ), ], ), ),
解决方法
问题根源在于Column的默认布局属性:默认垂直居中且子组件宽度撑满,同时固定高度的Container无法容纳两个大字号文本。按以下方式修改代码即可达到预期效果:
body: Container( padding: EdgeInsets.only(left: 25, bottom: 15), height: 100, // 调整高度适配两个文本的总高度 decoration: BoxDecoration( color: Color.fromARGB(255, 73, 158, 138), borderRadius: BorderRadius.only( bottomLeft: Radius.circular(36), bottomRight: Radius.circular(36), ) ), child: Column( mainAxisAlignment: MainAxisAlignment.end, // 让文本靠容器底部对齐 crossAxisAlignment: CrossAxisAlignment.start, // 让文本左对齐 children: <Widget>[ Text( "Olá, usuário", style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold, fontSize: 35, ), ), Text( "Olá, usuário", style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold, fontSize: 35, ), ), ], ), ),
关键调整说明
crossAxisAlignment: CrossAxisAlignment.start:将文本沿水平方向左对齐,解决默认居中的问题;mainAxisAlignment: MainAxisAlignment.end:将文本沿垂直方向靠容器底部对齐,匹配预期布局;- 调整
Container的height为100:原高度80不足以容纳两个35字号的文本,会导致内容被截断,调整后能完整显示文本。
内容的提问来源于stack exchange,提问作者duda
相关产品推荐
相关产品推荐

