是否可以从具有填充的列中排除 1 个小部件?

问题描述 投票:0回答:4

我有一个带有按钮的列,我想要在其中填充,但是最上面的小部件是我不想填充的行。

是否可以从填充中排除该行,或者我是否必须单独为每个按钮定义填充?

flutter padding flutter-layout
4个回答
1
投票

您的行在您的列内吗?如果是,只需将您的行从列中取出,这样它就不会得到填充。


1
投票

您可以创建一个单独的类来创建按钮并指定一次填充。然后,您可以一次又一次地调用该类,以在列中创建任意数量的按钮。

 

    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"),
          ],
        );
      }
    }
 

它应该看起来像这样 - Image


1
投票

尝试这个方法。

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(), 
        ],
      ),
    )
  ],
)

0
投票

是的。有可能的。使用下面的小部件来实现它:

  IntrinsicHeight(
                          child: OverflowBox(
                            maxWidth: MediaQuery.of(context).size.width,
                            maxHeight: 2,
                            minHeight: 2,
                            child: Container(
                              color: Grey,
                            ),
                          ),
                        ),
© www.soinside.com 2019 - 2024. All rights reserved.