我有一个带有按钮的列,我想要在其中填充,但是最上面的小部件是我不想填充的行。
是否可以从填充中排除该行,或者我是否必须单独为每个按钮定义填充?
您的行在您的列内吗?如果是,只需将您的行从列中取出,这样它就不会得到填充。
您可以创建一个单独的类来创建按钮并指定一次填充。然后,您可以一次又一次地调用该类,以在列中创建任意数量的按钮。
class MakeButton extends StatelessWidget{
final String _buttonCaption;
MakeButton(this._buttonCaption);
@override
Widget build (BuildContext context){
return Padding(
padding: EdgeInsets.all(10),
child: FlatButton(
onPressed: () {},
child: Text(
_buttonCaption
),
),
);
}
}
现在您不需要指定列的填充,并且行将没有任何填充。
class Test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text("Row DATA 1"),
Text("Row DATA 2"),
Text("Row DATA 3"),
],
),
MakeButton("Flat Button 1"),
MakeButton("Flat Button 2"),
MakeButton("Flat Button 3"),
],
);
}
}
它应该看起来像这样 -
尝试这个方法。
Column(
children: <Widget>[
Row(), // Row without padding
Padding( // add Padding widget, make Column its child and put Buttons inside
padding: your_padding_here,
child: Column(
children: <Widget>[
Button1(),
Button2(),
],
),
)
],
)
是的。有可能的。使用下面的小部件来实现它:
IntrinsicHeight(
child: OverflowBox(
maxWidth: MediaQuery.of(context).size.width,
maxHeight: 2,
minHeight: 2,
child: Container(
color: Grey,
),
),
),