Ae *_*pek 2 flutter flutter-layout
我正在尝试创建一个Flutter应用程序,该应用程序具有一个带有文本和图标作为标签的按钮,该图标位于文本的右侧。这篇文章中描述的方法会产生一个看起来很奇怪的按钮,该按钮似乎扩展到了应用程序的宽度,请参见此图像(链接,因为我不允许附加图像):
我不清楚要使用哪些布局小部件来调整text + image按钮以将其格式化为纯文本按钮。
产生以上示例的代码:
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text(
'You have pushed the button this many times:',
),
new Text(
'$_counter',
style: Theme.of(context).textTheme.display1,
),
new RaisedButton(
onPressed: _incrementCounter,
child: new Row(
children: <Widget>[
new Text("Button with text and icon!"),
new Icon(Icons.lightbulb_outline)
],
),
),
new RaisedButton(
onPressed: _incrementCounter,
child: new Text("Button with only text")
),
],
),
),
floatingActionButton: new FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: new Icon(Icons.add),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
你可以简单地使用这个 RaisedButton.icon
简单用法:
RaisedButton.icon(
onPressed: () {},
elevation: 2.0,
shape: new RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(5.0),
),
color: const Color(0xFFFFB822),
icon: Icon(Icons.add_shopping_cart),
label: Text("Add to Cart",
style: TextStyle(
fontWeight: FontWeight.w900,
),
),
)
Run Code Online (Sandbox Code Playgroud)
行属性mainAxisSize: MainAxisSize.min
在这里起到了作用。
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Home'),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new RaisedButton(
onPressed: () {},
child: new Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
new Text('Button with text and icon!'),
new Icon(Icons.lightbulb_outline),
],
),
),
new RaisedButton(
onPressed: () {},
child: new Text('Button with only text'),
)
],
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7384 次 |
最近记录: |