Adn*_*ali 3 android padding flutter
appBar: new AppBar(
leading: Stack(
children: <Widget>[
IconButton(
icon: const Icon(Icons.arrow_forward),
onPressed: () {
_nextPage(1);
},
tooltip: 'Next',
padding: EdgeInsets.only(left: 360.0),
),
IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () {
_nextPage(-1);
},
tooltip: 'Previous',
),
],
),
),
Run Code Online (Sandbox Code Playgroud)
块引用
两个 IconButtons ,第一个不起作用,但第二个起作用,当您删除填充时它工作正常,我应该怎么做?,而使用容器也无济于事,因为它们也占用空间,那该怎么办?
你那里有很多错误。
首先,
您使用的是Stack, stack 会将您的小部件放在另一个之上,因此您必须使用Positioned或指定位置Align。
其次,
如果您查看源代码,您会发现leadingWidget有宽度限制。
if (leading != null) {
leading = new ConstrainedBox(
constraints: const BoxConstraints.tightFor(width: _kLeadingWidth),
child: leading,
);
}
Run Code Online (Sandbox Code Playgroud)
其中 _kLeadingWidth = 56
第一个解决方案
用Stack小Row部件替换你的小部件,如果你这样做,你会得到一个溢出异常,因为你两个的大小IconButtons超过了宽度> 56。
最终解决方案(您可以找到更多信息)
取下IconButton并使用IconInkWell 包裹的(为了接收水龙头)
return Scaffold(
appBar: new AppBar(
leading: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
InkWell(
onTap: () => print("1"),
child: Padding(
padding: EdgeInsets.all(2.0),
child: const Icon(Icons.arrow_forward))),
InkWell(
onTap: () => print("2"),
child: Padding(
padding: EdgeInsets.all(2.0),
child: const Icon(Icons.arrow_back))),
],
),
),
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5947 次 |
| 最近记录: |