我是新手。我正在尝试将带有文本的简单“包含按钮”插入“ AppBar”。(例如,材料设计“包含按钮” here)
问题是,无论我在构造器中插入什么高度,该按钮仍会填满AppBar的整个高度。
我可以像下面的示例中那样明显地设置padding来解决问题,但是令我感到沮丧的是,我不明白为什么我不能更改按钮本身的高度。我也尝试像答案here所示,用容器或sizeBox包裹它,但没有做任何可见的更改(仍然按钮填充了整个appBar的高度)
[如果有人能向我解释代码为什么如此行行,我将非常感激。
appBar: AppBar(
automaticallyImplyLeading: false,
title: Text(widget.title),
actions: <Widget>[
Padding(
padding: EdgeInsets.only(top: 7.0, bottom: 7),
child: Container(
width: 80,
child: FlatButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5.0),
),
color: Color.fromRGBO(58, 90, 128, 1),
onPressed: () {},
child: Text('Button')
),
)
),
]
)
我认为AppBar()
在material design guidelines for AppBar之后。
还与材料Scaffold()
小部件有关。
您可以看一下本文档
在这种[[特定情况]中,我认为控制高度的最佳方法是使用Padding()
。您可以在代码中擦除容器。
appBar: AppBar(
automaticallyImplyLeading: false,
title: Text(widget.title),
actions: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: FlatButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5.0),
),
color: Color.fromRGBO(58, 90, 128, 1),
onPressed: () {},
child: Text('Button')),
),
]),
您可以使用PreferredSize()
控制AppBar的完整大小,但这与按钮的高度无关。