如何在 Flutter 中为 Container Widget 下划线
Posted
技术标签:
【中文标题】如何在 Flutter 中为 Container Widget 下划线【英文标题】:How to underline a Container Widget in Flutter 【发布时间】:2018-12-10 02:11:35 【问题描述】:我试图在我的 Flutter 应用程序中为 Container 加下划线。到目前为止,当我使用以下代码时,我实现了某种下属:
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: Padding(
padding: EdgeInsets.all(8.0),
child: Text(
'Underline my parent!',
maxLines: 2,
textAlign: TextAlign.center,
),
),
)
],
),
decoration: Border(bottom: BorderSide(color: Colors.grey)),
),
但现在我希望下划线不是从头到尾,我想在开头和结尾留出空间。如果有一些更聪明的方式来给小部件下划线,我也会很高兴看到它。
【问题讨论】:
【参考方案1】:在您的容器中添加底部BorderSide
。
Container(
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(width: 1.0, color: Colors.black),
),
),
),
【讨论】:
【参考方案2】:您可以使用一个简单的 Divider
小部件,包括一个填充:
new Padding(
padding: EdgeInsets.all(8.0),
child: new Divider()
),
然后您可以用列包装现有的小部件:
new Column(
children: <Widget> [
yourContainerWidget,
new Padding(
padding: EdgeInsets.all(8.0),
child: new Divider()
),
]
)
【讨论】:
好的,但是这个 Divider 应该放在哪里?容器之后? 这是一个相当不错的方法,但我现在无法设置分隔线宽度。 然后尝试移除它周围的填充。 我的意思是下划线的宽度,现在它是固定像素,我看不出有任何可能使它的宽度例如 5 像素 嗯,你可以把它放在一个容器里,用width
属性设置宽度。【参考方案3】:
您可以使用 Border
在 Container 小部件中简单地创建下划线
这里是代码:
Container(
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 1.0
),
),
),
child: Text(
'Underline my parent!',
maxLines: 2,
textAlign: TextAlign.center,
),
),
【讨论】:
【参考方案4】:一个简单的解决方案是使用Container
小部件创建一条线。并使用 Column 小部件包装 Row 小部件并将该行添加为第二个孩子,如下所示:
var aLine = Container(color: Colors.grey, width: 50.0, height: 2.0,);
Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: Padding(
padding: EdgeInsets.all(8.0),
child: Text(
'Underline my parent!',
maxLines: 2,
textAlign: TextAlign.center,
),
),
),
],
),
aLine
],
),
【讨论】:
以上是关于如何在 Flutter 中为 Container Widget 下划线的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:如何在 Flutter 中为 Firebase (FCM) 注册令牌订阅ToTopic